summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-contrib <[email protected]>2025-06-23 12:10:44 +0300
committerrobot-contrib <[email protected]>2025-06-23 12:47:15 +0300
commita731af300f45dd4cb0f3fd3b24c8213fe1425068 (patch)
tree036a73c5965bc3068fc1ed97c98a8ab31454d81e
parent6aec99621dd3b4db25c97fe17265631e334179c3 (diff)
Update contrib/libs/pfr to 2.3.2
commit_hash:8c32fcef195aae61c50da1b5a0ee2f0b1ee45ffd
-rw-r--r--contrib/libs/pfr/.yandex_meta/devtools.copyrights.report52
-rw-r--r--contrib/libs/pfr/.yandex_meta/devtools.licenses.report10
-rw-r--r--contrib/libs/pfr/.yandex_meta/licenses.list.txt19
-rw-r--r--contrib/libs/pfr/README.md4
-rw-r--r--contrib/libs/pfr/include/pfr.hpp2
-rw-r--r--contrib/libs/pfr/include/pfr/config.hpp24
-rw-r--r--contrib/libs/pfr/include/pfr/core.hpp39
-rw-r--r--contrib/libs/pfr/include/pfr/core_name.hpp40
-rw-r--r--contrib/libs/pfr/include/pfr/detail/cast_to_layout_compatible.hpp75
-rw-r--r--contrib/libs/pfr/include/pfr/detail/config.hpp2
-rw-r--r--contrib/libs/pfr/include/pfr/detail/core.hpp2
-rw-r--r--contrib/libs/pfr/include/pfr/detail/core14_classic.hpp10
-rw-r--r--contrib/libs/pfr/include/pfr/detail/core14_loophole.hpp9
-rw-r--r--contrib/libs/pfr/include/pfr/detail/core17.hpp2
-rw-r--r--contrib/libs/pfr/include/pfr/detail/core17_generated.hpp6326
-rw-r--r--contrib/libs/pfr/include/pfr/detail/core_name14_disabled.hpp9
-rw-r--r--contrib/libs/pfr/include/pfr/detail/core_name20_static.hpp33
-rw-r--r--contrib/libs/pfr/include/pfr/detail/detectors.hpp6
-rw-r--r--contrib/libs/pfr/include/pfr/detail/fake_object.hpp31
-rw-r--r--contrib/libs/pfr/include/pfr/detail/fields_count.hpp303
-rw-r--r--contrib/libs/pfr/include/pfr/detail/for_each_field.hpp48
-rw-r--r--contrib/libs/pfr/include/pfr/detail/for_each_field_impl.hpp8
-rw-r--r--contrib/libs/pfr/include/pfr/detail/functional.hpp10
-rw-r--r--contrib/libs/pfr/include/pfr/detail/io.hpp6
-rw-r--r--contrib/libs/pfr/include/pfr/detail/make_flat_tuple_of_references.hpp6
-rw-r--r--contrib/libs/pfr/include/pfr/detail/make_integer_sequence.hpp4
-rw-r--r--contrib/libs/pfr/include/pfr/detail/offset_based_getter.hpp10
-rw-r--r--contrib/libs/pfr/include/pfr/detail/possible_reflectable.hpp2
-rw-r--r--contrib/libs/pfr/include/pfr/detail/rvalue_t.hpp4
-rw-r--r--contrib/libs/pfr/include/pfr/detail/sequence_tuple.hpp26
-rw-r--r--contrib/libs/pfr/include/pfr/detail/size_array.hpp6
-rw-r--r--contrib/libs/pfr/include/pfr/detail/size_t_.hpp7
-rw-r--r--contrib/libs/pfr/include/pfr/detail/stdarray.hpp34
-rw-r--r--contrib/libs/pfr/include/pfr/detail/stdtuple.hpp13
-rw-r--r--contrib/libs/pfr/include/pfr/detail/tie_from_structure_tuple.hpp4
-rw-r--r--contrib/libs/pfr/include/pfr/detail/unsafe_declval.hpp4
-rw-r--r--contrib/libs/pfr/include/pfr/functions_for.hpp4
-rw-r--r--contrib/libs/pfr/include/pfr/functors.hpp10
-rw-r--r--contrib/libs/pfr/include/pfr/io.hpp22
-rw-r--r--contrib/libs/pfr/include/pfr/io_fields.hpp22
-rw-r--r--contrib/libs/pfr/include/pfr/ops.hpp17
-rw-r--r--contrib/libs/pfr/include/pfr/ops_fields.hpp11
-rw-r--r--contrib/libs/pfr/include/pfr/traits.hpp11
-rw-r--r--contrib/libs/pfr/include/pfr/traits_fwd.hpp9
-rw-r--r--contrib/libs/pfr/include/pfr/tuple_size.hpp16
-rw-r--r--contrib/libs/pfr/ya.make4
46 files changed, 6987 insertions, 329 deletions
diff --git a/contrib/libs/pfr/.yandex_meta/devtools.copyrights.report b/contrib/libs/pfr/.yandex_meta/devtools.copyrights.report
index c545ed88af2..b99ad2f5354 100644
--- a/contrib/libs/pfr/.yandex_meta/devtools.copyrights.report
+++ b/contrib/libs/pfr/.yandex_meta/devtools.copyrights.report
@@ -32,7 +32,7 @@
KEEP COPYRIGHT_SERVICE_LABEL 013a24bcf69d213aa5b670e96cefb293
BELONGS ya.make
License text:
- // Copyright (c) 2016-2023 Antony Polukhin
+ // Copyright (c) 2016-2025 Antony Polukhin
// Copyright (c) 2022 Denis Mikhailov
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
@@ -49,7 +49,7 @@ KEEP COPYRIGHT_SERVICE_LABEL 20208a12a24113d213ef2620af9718e0
BELONGS ya.make
License text:
// Copyright (c) 2017-2018 Alexandr Poltavsky, Antony Polukhin.
- // Copyright (c) 2019-2023 Antony Polukhin.
+ // Copyright (c) 2019-2025 Antony Polukhin.
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
Score : 100.00
@@ -57,10 +57,10 @@ BELONGS ya.make
Files with this license:
include/pfr/detail/core14_loophole.hpp [1:2]
-KEEP COPYRIGHT_SERVICE_LABEL 49b55ffa50d2d0bf215b217c881c2a59
+KEEP COPYRIGHT_SERVICE_LABEL 5322ab3ae537102796ad52e9d226f36f
BELONGS ya.make
License text:
- // Copyright (c) 2016-2023 Antony Polukhin
+ // Copyright (c) 2016-2025 Antony Polukhin
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
Score : 100.00
@@ -69,7 +69,6 @@ BELONGS ya.make
include/pfr.hpp [1:1]
include/pfr/config.hpp [1:2]
include/pfr/core.hpp [1:1]
- include/pfr/detail/cast_to_layout_compatible.hpp [1:1]
include/pfr/detail/config.hpp [1:2]
include/pfr/detail/core.hpp [1:1]
include/pfr/detail/core14_classic.hpp [1:1]
@@ -77,6 +76,7 @@ BELONGS ya.make
include/pfr/detail/core17_generated.hpp [1:2]
include/pfr/detail/detectors.hpp [1:1]
include/pfr/detail/fields_count.hpp [1:1]
+ include/pfr/detail/for_each_field.hpp [1:1]
include/pfr/detail/for_each_field_impl.hpp [1:1]
include/pfr/detail/functional.hpp [1:1]
include/pfr/detail/io.hpp [1:1]
@@ -107,13 +107,13 @@ BELONGS ya.make
include/pfr/detail/core_name.hpp [1:1]
include/pfr/detail/core_name14_disabled.hpp [1:1]
include/pfr/detail/core_name20_static.hpp [1:1]
- include/pfr/detail/fake_object.hpp [1:1]
+ include/pfr/detail/fake_object.hpp [1:2]
KEEP COPYRIGHT_SERVICE_LABEL 716f9f766f4e0604fa46f4898e32926f
BELONGS ya.make
License text:
// Copyright (c) 2018 Adam Butcher, Antony Polukhin
- // Copyright (c) 2019-2023 Antony Polukhin
+ // Copyright (c) 2019-2025 Antony Polukhin
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
Score : 100.00
@@ -121,39 +121,35 @@ BELONGS ya.make
Files with this license:
include/pfr/detail/tie_from_structure_tuple.hpp [1:2]
-KEEP COPYRIGHT_SERVICE_LABEL 8fe3f5af6c8f891a7f4de986affc64da
+KEEP COPYRIGHT_SERVICE_LABEL a67e7cb38d73abfa31951d9ff2a5e8a6
BELONGS ya.make
License text:
- // Copyright (c) 2017-2018 Alexandr Poltavsky, Antony Polukhin.
- // Copyright (c) 2019-2023 Antony Polukhin.
+ // Copyright (c) 2018 Sergei Fedorov
+ // Copyright (c) 2019-2025 Antony Polukhin
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
Score : 100.00
Match type : COPYRIGHT
Files with this license:
- include/pfr/detail/core14_loophole.hpp [1:2]
include/pfr/detail/make_integer_sequence.hpp [1:2]
- include/pfr/detail/offset_based_getter.hpp [1:2]
- include/pfr/detail/tie_from_structure_tuple.hpp [1:2]
- include/pfr/detail/unsafe_declval.hpp [1:1]
-KEEP COPYRIGHT_SERVICE_LABEL a67e7cb38d73abfa31951d9ff2a5e8a6
+KEEP COPYRIGHT_SERVICE_LABEL bb9db8bc019e51311bcd1d10948b27b6
BELONGS ya.make
License text:
- // Copyright (c) 2018 Sergei Fedorov
- // Copyright (c) 2019-2023 Antony Polukhin
+ // Copyright (c) 2023 Bela Schaum, X-Ryl669, Denis Mikhailov.
+ // Copyright (c) 2024-2025 Antony Polukhin
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
Score : 100.00
Match type : COPYRIGHT
Files with this license:
- include/pfr/detail/make_integer_sequence.hpp [1:2]
+ include/pfr/detail/fake_object.hpp [1:2]
KEEP COPYRIGHT_SERVICE_LABEL d4789aa7348ae6274f4c886ad65933c1
BELONGS ya.make
License text:
// Copyright (c) 2017-2018 Chris Beck
- // Copyright (c) 2019-2023 Antony Polukhin
+ // Copyright (c) 2019-2025 Antony Polukhin
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
Score : 100.00
@@ -161,10 +157,26 @@ BELONGS ya.make
Files with this license:
include/pfr/detail/offset_based_getter.hpp [1:2]
+KEEP COPYRIGHT_SERVICE_LABEL e44b2e48bc30892ab60e7b46402d8e2a
+BELONGS ya.make
+ License text:
+ // Copyright (c) 2017-2018 Alexandr Poltavsky, Antony Polukhin.
+ // Copyright (c) 2019-2025 Antony Polukhin.
+ Scancode info:
+ Original SPDX id: COPYRIGHT_SERVICE_LABEL
+ Score : 100.00
+ Match type : COPYRIGHT
+ Files with this license:
+ include/pfr/detail/core14_loophole.hpp [1:2]
+ include/pfr/detail/make_integer_sequence.hpp [1:2]
+ include/pfr/detail/offset_based_getter.hpp [1:2]
+ include/pfr/detail/tie_from_structure_tuple.hpp [1:2]
+ include/pfr/detail/unsafe_declval.hpp [1:1]
+
KEEP COPYRIGHT_SERVICE_LABEL f4e5cb6186c2395de18518cf73771274
BELONGS ya.make
License text:
- // Copyright (c) 2016-2023 Antony Polukhin
+ // Copyright (c) 2016-2025 Antony Polukhin
// Copyright (c) 2023 Denis Mikhailov
Scancode info:
Original SPDX id: COPYRIGHT_SERVICE_LABEL
diff --git a/contrib/libs/pfr/.yandex_meta/devtools.licenses.report b/contrib/libs/pfr/.yandex_meta/devtools.licenses.report
index d6270596484..cbe46e1fbe5 100644
--- a/contrib/libs/pfr/.yandex_meta/devtools.licenses.report
+++ b/contrib/libs/pfr/.yandex_meta/devtools.licenses.report
@@ -31,7 +31,7 @@
KEEP BSL-1.0 1bc23f67ca27c295e38b46190cdce22f
BELONGS ya.make
-FILE_INCLUDE LICENSE_1_0.txt found in files: include/pfr.hpp at line 4, include/pfr/config.hpp at line 5, include/pfr/core.hpp at line 4, include/pfr/core_name.hpp at line 4, include/pfr/detail/cast_to_layout_compatible.hpp at line 4, include/pfr/detail/config.hpp at line 5, include/pfr/detail/core.hpp at line 4, include/pfr/detail/core14_classic.hpp at line 4, include/pfr/detail/core14_loophole.hpp at line 5, include/pfr/detail/core17.hpp at line 4, include/pfr/detail/core17_generated.hpp at line 5, include/pfr/detail/core_name.hpp at line 4, include/pfr/detail/core_name14_disabled.hpp at line 4, include/pfr/detail/core_name20_static.hpp at line 4, include/pfr/detail/detectors.hpp at line 4, include/pfr/detail/fake_object.hpp at line 4, include/pfr/detail/fields_count.hpp at line 4, include/pfr/detail/for_each_field_impl.hpp at line 4, include/pfr/detail/functional.hpp at line 4, include/pfr/detail/io.hpp at line 4, include/pfr/detail/make_flat_tuple_of_references.hpp at line 4, include/pfr/detail/make_integer_sequence.hpp at line 5, include/pfr/detail/offset_based_getter.hpp at line 5, include/pfr/detail/possible_reflectable.hpp at line 4, include/pfr/detail/rvalue_t.hpp at line 4, include/pfr/detail/sequence_tuple.hpp at line 4, include/pfr/detail/size_array.hpp at line 4, include/pfr/detail/size_t_.hpp at line 4, include/pfr/detail/stdarray.hpp at line 4, include/pfr/detail/stdtuple.hpp at line 4, include/pfr/detail/tie_from_structure_tuple.hpp at line 5, include/pfr/detail/unsafe_declval.hpp at line 4, include/pfr/functions_for.hpp at line 4, include/pfr/functors.hpp at line 4, include/pfr/io.hpp at line 4, include/pfr/io_fields.hpp at line 4, include/pfr/ops.hpp at line 4, include/pfr/ops_fields.hpp at line 4, include/pfr/traits.hpp at line 4, include/pfr/traits_fwd.hpp at line 4, include/pfr/tuple_size.hpp at line 4
+FILE_INCLUDE LICENSE_1_0.txt found in files: include/pfr.hpp at line 4, include/pfr/config.hpp at line 5, include/pfr/core.hpp at line 4, include/pfr/core_name.hpp at line 4, include/pfr/detail/config.hpp at line 5, include/pfr/detail/core.hpp at line 4, include/pfr/detail/core14_classic.hpp at line 4, include/pfr/detail/core14_loophole.hpp at line 5, include/pfr/detail/core17.hpp at line 4, include/pfr/detail/core17_generated.hpp at line 5, include/pfr/detail/core_name.hpp at line 4, include/pfr/detail/core_name14_disabled.hpp at line 4, include/pfr/detail/core_name20_static.hpp at line 4, include/pfr/detail/detectors.hpp at line 4, include/pfr/detail/fake_object.hpp at line 5, include/pfr/detail/fields_count.hpp at line 4, include/pfr/detail/for_each_field.hpp at line 4, include/pfr/detail/for_each_field_impl.hpp at line 4, include/pfr/detail/functional.hpp at line 4, include/pfr/detail/io.hpp at line 4, include/pfr/detail/make_flat_tuple_of_references.hpp at line 4, include/pfr/detail/make_integer_sequence.hpp at line 5, include/pfr/detail/offset_based_getter.hpp at line 5, include/pfr/detail/possible_reflectable.hpp at line 4, include/pfr/detail/rvalue_t.hpp at line 4, include/pfr/detail/sequence_tuple.hpp at line 4, include/pfr/detail/size_array.hpp at line 4, include/pfr/detail/size_t_.hpp at line 4, include/pfr/detail/stdarray.hpp at line 4, include/pfr/detail/stdtuple.hpp at line 4, include/pfr/detail/tie_from_structure_tuple.hpp at line 5, include/pfr/detail/unsafe_declval.hpp at line 4, include/pfr/functions_for.hpp at line 4, include/pfr/functors.hpp at line 4, include/pfr/io.hpp at line 4, include/pfr/io_fields.hpp at line 4, include/pfr/ops.hpp at line 4, include/pfr/ops_fields.hpp at line 4, include/pfr/traits.hpp at line 4, include/pfr/traits_fwd.hpp at line 4, include/pfr/tuple_size.hpp at line 4
License text:
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -45,7 +45,6 @@ FILE_INCLUDE LICENSE_1_0.txt found in files: include/pfr.hpp at line 4, include/
include/pfr/config.hpp [4:5]
include/pfr/core.hpp [3:4]
include/pfr/core_name.hpp [3:4]
- include/pfr/detail/cast_to_layout_compatible.hpp [3:4]
include/pfr/detail/config.hpp [4:5]
include/pfr/detail/core.hpp [3:4]
include/pfr/detail/core14_classic.hpp [3:4]
@@ -56,8 +55,9 @@ FILE_INCLUDE LICENSE_1_0.txt found in files: include/pfr.hpp at line 4, include/
include/pfr/detail/core_name14_disabled.hpp [3:4]
include/pfr/detail/core_name20_static.hpp [3:4]
include/pfr/detail/detectors.hpp [3:4]
- include/pfr/detail/fake_object.hpp [3:4]
+ include/pfr/detail/fake_object.hpp [4:5]
include/pfr/detail/fields_count.hpp [3:4]
+ include/pfr/detail/for_each_field.hpp [3:4]
include/pfr/detail/for_each_field_impl.hpp [3:4]
include/pfr/detail/functional.hpp [3:4]
include/pfr/detail/io.hpp [3:4]
@@ -104,7 +104,7 @@ BELONGS ya.make
Match type : NOTICE
Links : http://www.linfo.org/publicdomain.html, https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/public-domain.LICENSE
Files with this license:
- include/pfr/detail/functional.hpp [126:126]
+ include/pfr/detail/functional.hpp [128:128]
KEEP BSL-1.0 946bc271e5e8c30479a080d5b8ef3415
BELONGS ya.make
@@ -130,4 +130,4 @@ BELONGS ya.make
Match type : TEXT
Links : http://www.linfo.org/publicdomain.html, https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/public-domain.LICENSE
Files with this license:
- include/pfr/detail/functional.hpp [129:130]
+ include/pfr/detail/functional.hpp [131:132]
diff --git a/contrib/libs/pfr/.yandex_meta/licenses.list.txt b/contrib/libs/pfr/.yandex_meta/licenses.list.txt
index 9d13c75d89c..a296ee588f9 100644
--- a/contrib/libs/pfr/.yandex_meta/licenses.list.txt
+++ b/contrib/libs/pfr/.yandex_meta/licenses.list.txt
@@ -34,43 +34,48 @@ License
Distributed under the [Boost Software License, Version 1.0](https://boost.org/LICENSE_1_0.txt).
====================COPYRIGHT====================
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
====================COPYRIGHT====================
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
// Copyright (c) 2022 Denis Mikhailov
====================COPYRIGHT====================
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
// Copyright (c) 2023 Denis Mikhailov
====================COPYRIGHT====================
// Copyright (c) 2017-2018 Alexandr Poltavsky, Antony Polukhin.
-// Copyright (c) 2019-2023 Antony Polukhin.
+// Copyright (c) 2019-2025 Antony Polukhin.
====================COPYRIGHT====================
// Copyright (c) 2017-2018 Chris Beck
-// Copyright (c) 2019-2023 Antony Polukhin
+// Copyright (c) 2019-2025 Antony Polukhin
====================COPYRIGHT====================
// Copyright (c) 2018 Adam Butcher, Antony Polukhin
-// Copyright (c) 2019-2023 Antony Polukhin
+// Copyright (c) 2019-2025 Antony Polukhin
====================COPYRIGHT====================
// Copyright (c) 2018 Sergei Fedorov
-// Copyright (c) 2019-2023 Antony Polukhin
+// Copyright (c) 2019-2025 Antony Polukhin
====================COPYRIGHT====================
// Copyright (c) 2023 Bela Schaum, X-Ryl669, Denis Mikhailov.
+====================COPYRIGHT====================
+// Copyright (c) 2023 Bela Schaum, X-Ryl669, Denis Mikhailov.
+// Copyright (c) 2024-2025 Antony Polukhin
+
+
====================File: LICENSE_1_0.txt====================
Boost Software License - Version 1.0 - August 17th, 2003
diff --git a/contrib/libs/pfr/README.md b/contrib/libs/pfr/README.md
index b51baed036a..843101f772a 100644
--- a/contrib/libs/pfr/README.md
+++ b/contrib/libs/pfr/README.md
@@ -10,8 +10,8 @@ For a version of the library without `boost::` namespace see [PFR](https://githu
Branches | Build | Tests coverage | More info
----------------|-------------- | -------------- |-----------
-Develop: | [![CI](https://github.com/boostorg/pfr/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/0mavmnkdmltcdmqa/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/pfr/branch/develop) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=develop)](https://coveralls.io/github/apolukhin/magic_get?branch=develop) | [details...](https://www.boost.org/development/tests/develop/developer/pfr.html)
-Master: | [![CI](https://github.com/boostorg/pfr/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/0mavmnkdmltcdmqa/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/pfr/branch/master) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=master)](https://coveralls.io/github/apolukhin/magic_get?branch=master) | [details...](https://www.boost.org/development/tests/master/developer/pfr.html)
+Develop: | [![CI](https://github.com/boostorg/pfr/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/0mavmnkdmltcdmqa/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/pfr/branch/develop) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=develop)](https://coveralls.io/github/apolukhin/magic_get?branch=develop) | [details...](https://regression.boost.io/develop/developer/pfr.html)
+Master: | [![CI](https://github.com/boostorg/pfr/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/0mavmnkdmltcdmqa/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/pfr/branch/master) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=master)](https://coveralls.io/github/apolukhin/magic_get?branch=master) | [details...](https://regression.boost.io/master/developer/pfr.html)
[Latest developer documentation](https://www.boost.org/doc/libs/develop/doc/html/boost_pfr.html)
diff --git a/contrib/libs/pfr/include/pfr.hpp b/contrib/libs/pfr/include/pfr.hpp
index d110a49a6fc..19520e76575 100644
--- a/contrib/libs/pfr/include/pfr.hpp
+++ b/contrib/libs/pfr/include/pfr.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/contrib/libs/pfr/include/pfr/config.hpp b/contrib/libs/pfr/include/pfr/config.hpp
index d8441a6f19f..b193a4d5717 100644
--- a/contrib/libs/pfr/include/pfr/config.hpp
+++ b/contrib/libs/pfr/include/pfr/config.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
// Copyright (c) 2022 Denis Mikhailov
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -8,8 +8,10 @@
#define PFR_CONFIG_HPP
#pragma once
-#if __cplusplus >= 201402L || (defined(_MSC_VER) && defined(_MSVC_LANG) && _MSC_VER > 1900)
+#if !defined(PFR_USE_MODULES) && (__cplusplus >= 201402L || (defined(_MSC_VER) && defined(_MSVC_LANG) && _MSC_VER > 1900))
#include <type_traits> // to get non standard platform macro definitions (__GLIBCXX__ for example)
+#elif defined(PFR_USE_MODULES)
+#include <version>
#endif
/// \file pfr/config.hpp
@@ -70,8 +72,10 @@
#endif
#ifndef PFR_USE_STD_MAKE_INTEGRAL_SEQUENCE
+# if defined(PFR_USE_MODULES)
+# define PFR_USE_STD_MAKE_INTEGRAL_SEQUENCE 1
// Assume that libstdc++ since GCC-7.3 does not have linear instantiation depth in std::make_integral_sequence
-# if defined( __GLIBCXX__) && __GLIBCXX__ >= 20180101
+# elif defined( __GLIBCXX__) && __GLIBCXX__ >= 20180101
# define PFR_USE_STD_MAKE_INTEGRAL_SEQUENCE 1
# elif defined(_MSC_VER)
# define PFR_USE_STD_MAKE_INTEGRAL_SEQUENCE 1
@@ -113,7 +117,7 @@
#ifndef PFR_CORE_NAME_PARSING
-# if defined(_MSC_VER)
+# if defined(_MSC_VER) && !defined(__clang__)
# define PFR_CORE_NAME_PARSING (sizeof("auto __cdecl pfr::detail::name_of_field_impl<") - 1, sizeof(">(void) noexcept") - 1, backward("->"))
# elif defined(__clang__)
# define PFR_CORE_NAME_PARSING (sizeof("auto pfr::detail::name_of_field_impl() [MsvcWorkaround = ") - 1, sizeof("}]") - 1, backward("."))
@@ -145,4 +149,16 @@
#undef PFR_NOT_SUPPORTED
+#ifdef PFR_INTERFACE_UNIT
+# define PFR_BEGIN_MODULE_EXPORT export {
+# define PFR_END_MODULE_EXPORT }
+#else
+# define PFR_BEGIN_MODULE_EXPORT
+# define PFR_END_MODULE_EXPORT
+#endif
+
+#if defined(PFR_USE_MODULES) && !defined(PFR_INTERFACE_UNIT)
+import pfr;
+#endif
+
#endif // PFR_CONFIG_HPP
diff --git a/contrib/libs/pfr/include/pfr/core.hpp b/contrib/libs/pfr/include/pfr/core.hpp
index fe762b75a46..51b409e02be 100644
--- a/contrib/libs/pfr/include/pfr/core.hpp
+++ b/contrib/libs/pfr/include/pfr/core.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,18 +9,22 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#include <pfr/detail/core.hpp>
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/stdtuple.hpp>
-#include <pfr/detail/for_each_field_impl.hpp>
+#include <pfr/detail/for_each_field.hpp>
#include <pfr/detail/make_integer_sequence.hpp>
#include <pfr/detail/tie_from_structure_tuple.hpp>
+#include <pfr/tuple_size.hpp>
+
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits>
#include <utility> // metaprogramming stuff
-
-#include <pfr/tuple_size.hpp>
+#endif
/// \file pfr/core.hpp
/// Contains all the basic tuple-like interfaces \forcedlink{get}, \forcedlink{tuple_size}, \forcedlink{tuple_element_t}, and others.
@@ -29,6 +33,8 @@
namespace pfr {
+PFR_BEGIN_MODULE_EXPORT
+
/// \brief Returns reference or const reference to a field with index `I` in \aggregate `val`.
/// Overload taking the type `U` returns reference or const reference to a field
/// with provided type `U` in \aggregate `val` if there's only one field of such type in `val`.
@@ -140,7 +146,7 @@ using tuple_element_t = typename tuple_element<I, T>::type;
/// assert(get<0>(t) == 10);
/// \endcode
template <class T>
-constexpr auto structure_to_tuple(const T& val) noexcept {
+constexpr auto structure_to_tuple(const T& val) {
return detail::make_stdtuple_from_tietuple(
detail::tie_as_tuple(val),
detail::make_index_sequence< tuple_size_v<T> >()
@@ -221,24 +227,7 @@ constexpr auto structure_tie(T&&, std::enable_if_t< std::is_rvalue_reference<T&&
/// \endcode
template <class T, class F>
constexpr void for_each_field(T&& value, F&& func) {
- constexpr std::size_t fields_count_val = pfr::detail::fields_count<std::remove_reference_t<T>>();
-
- ::pfr::detail::for_each_field_dispatcher(
- value,
- [f = std::forward<F>(func)](auto&& t) mutable {
- // MSVC related workaround. Its lambdas do not capture constexprs.
- constexpr std::size_t fields_count_val_in_lambda
- = pfr::detail::fields_count<std::remove_reference_t<T>>();
-
- ::pfr::detail::for_each_field_impl(
- t,
- std::forward<F>(f),
- detail::make_index_sequence<fields_count_val_in_lambda>{},
- std::is_rvalue_reference<T&&>{}
- );
- },
- detail::make_index_sequence<fields_count_val>{}
- );
+ return ::pfr::detail::for_each_field(std::forward<T>(value), std::forward<F>(func));
}
/// \brief std::tie-like function that allows assigning to tied values from aggregates.
@@ -260,6 +249,10 @@ constexpr detail::tie_from_structure_tuple<Elements...> tie_from_structure(Eleme
return detail::tie_from_structure_tuple<Elements...>(args...);
}
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_CORE_HPP
diff --git a/contrib/libs/pfr/include/pfr/core_name.hpp b/contrib/libs/pfr/include/pfr/core_name.hpp
index 38b78a378ea..ea2bd775c02 100644
--- a/contrib/libs/pfr/include/pfr/core_name.hpp
+++ b/contrib/libs/pfr/include/pfr/core_name.hpp
@@ -14,16 +14,20 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#include <pfr/detail/core_name.hpp>
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/stdarray.hpp>
#include <pfr/detail/make_integer_sequence.hpp>
-#include <cstddef> // for std::size_t
-
#include <pfr/tuple_size.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <cstddef> // for std::size_t
+#endif
+
/// \file pfr/core_name.hpp
/// Contains functions \forcedlink{get_name} and \forcedlink{names_as_array} to know which names each field of any \aggregate has.
///
@@ -33,6 +37,8 @@
namespace pfr {
+PFR_BEGIN_MODULE_EXPORT
+
/// \brief Returns name of a field with index `I` in \aggregate `T`.
///
/// \b Example:
@@ -77,12 +83,36 @@ auto
names_as_array() noexcept {
return detail::make_stdarray_from_tietuple(
detail::tie_as_names_tuple<T>(),
- detail::make_index_sequence< tuple_size_v<T> >(),
- 1L
+ detail::make_index_sequence< tuple_size_v<T> >()
);
}
+
+/// Calls `func` for each field with its name of a `value`
+///
+/// \param func must have one of the following signatures:
+/// * any_return_type func(std::string_view name, U&& field) // field of value is perfect forwarded to function
+/// * any_return_type func(std::string_view name, U&& field, std::size_t i)
+/// * any_return_type func(std::string_view name, U&& value, I i) // Here I is an `std::integral_constant<size_t, field_index>`
+///
+/// \param value To each field of this variable will be the `func` applied.
+///
+/// \b Example:
+/// \code
+/// struct Toto { int a; char c; };
+/// Toto t {5, 'c'};
+/// auto print = [](std::string_view name, const auto& value){ std::cout << "Name: " << name << " Value: " << value << std::endl; };
+/// for_each_field_with_name(t, print);
+/// \endcode
+template <class T, class F>
+constexpr void for_each_field_with_name(T&& value, F&& func) {
+ return pfr::detail::for_each_field_with_name(std::forward<T>(value), std::forward<F>(func));
+}
+
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
-#endif // PFR_CORE_NAME_HPP
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+#endif // PFR_CORE_NAME_HPP
diff --git a/contrib/libs/pfr/include/pfr/detail/cast_to_layout_compatible.hpp b/contrib/libs/pfr/include/pfr/detail/cast_to_layout_compatible.hpp
deleted file mode 100644
index 409c1b25bf8..00000000000
--- a/contrib/libs/pfr/include/pfr/detail/cast_to_layout_compatible.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright (c) 2016-2023 Antony Polukhin
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef PFR_DETAIL_CAST_TO_LAYOUT_COMPATIBLE_HPP
-#define PFR_DETAIL_CAST_TO_LAYOUT_COMPATIBLE_HPP
-#pragma once
-
-#include <pfr/detail/config.hpp>
-
-#include <type_traits>
-#include <utility> // metaprogramming stuff
-#include <pfr/detail/rvalue_t.hpp>
-
-namespace pfr { namespace detail {
-
-template <class T, class U>
-constexpr void static_assert_layout_compatible() noexcept {
- static_assert(
- std::alignment_of<T>::value == std::alignment_of<U>::value,
- "====================> Boost.PFR: Alignment check failed, probably your structure has user-defined alignment for the whole structure or for some of the fields."
- );
- static_assert(sizeof(T) == sizeof(U), "====================> Boost.PFR: Size check failed, probably your structure has bitfields or user-defined alignment.");
-}
-
-/// @cond
-#ifdef __GNUC__
-#define MAY_ALIAS __attribute__((__may_alias__))
-#else
-#define MAY_ALIAS
-#endif
-/// @endcond
-
-template <class To, class From>
-MAY_ALIAS const To& cast_to_layout_compatible(const From& val) noexcept {
- MAY_ALIAS const To* const t = reinterpret_cast<const To*>( std::addressof(val) );
- detail::static_assert_layout_compatible<To, From>();
- return *t;
-}
-
-template <class To, class From>
-MAY_ALIAS const volatile To& cast_to_layout_compatible(const volatile From& val) noexcept {
- MAY_ALIAS const volatile To* const t = reinterpret_cast<const volatile To*>( std::addressof(val) );
- detail::static_assert_layout_compatible<To, From>();
- return *t;
-}
-
-
-template <class To, class From>
-MAY_ALIAS volatile To& cast_to_layout_compatible(volatile From& val) noexcept {
- MAY_ALIAS volatile To* const t = reinterpret_cast<volatile To*>( std::addressof(val) );
- detail::static_assert_layout_compatible<To, From>();
- return *t;
-}
-
-
-template <class To, class From>
-MAY_ALIAS To& cast_to_layout_compatible(From& val) noexcept {
- MAY_ALIAS To* const t = reinterpret_cast<To*>( std::addressof(val) );
- detail::static_assert_layout_compatible<To, From>();
- return *t;
-}
-
-#ifdef PFR_DETAIL_STRICT_RVALUE_TESTING
-template <class To, class From>
-To&& cast_to_layout_compatible(rvalue_t<From> val) noexcept = delete;
-#endif
-
-#undef MAY_ALIAS
-
-
-}} // namespace pfr::detail
-
-#endif // PFR_DETAIL_CAST_TO_LAYOUT_COMPATIBLE_HPP
diff --git a/contrib/libs/pfr/include/pfr/detail/config.hpp b/contrib/libs/pfr/include/pfr/detail/config.hpp
index 9a0b10b4ef6..2374fcabd60 100644
--- a/contrib/libs/pfr/include/pfr/detail/config.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/config.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
// Copyright (c) 2022 Denis Mikhailov
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
diff --git a/contrib/libs/pfr/include/pfr/detail/core.hpp b/contrib/libs/pfr/include/pfr/detail/core.hpp
index 764a2206459..39d894fcd29 100644
--- a/contrib/libs/pfr/include/pfr/detail/core.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/core.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/contrib/libs/pfr/include/pfr/detail/core14_classic.hpp b/contrib/libs/pfr/include/pfr/detail/core14_classic.hpp
index b60c48b43b9..b54bc9dc592 100644
--- a/contrib/libs/pfr/include/pfr/detail/core14_classic.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/core14_classic.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,9 +9,6 @@
#include <pfr/detail/config.hpp>
-#include <type_traits>
-#include <utility> // metaprogramming stuff
-
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/offset_based_getter.hpp>
#include <pfr/detail/fields_count.hpp>
@@ -21,6 +18,11 @@
#include <pfr/detail/size_t_.hpp>
#include <pfr/detail/rvalue_t.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <type_traits>
+#include <utility> // metaprogramming stuff
+#endif
+
#ifdef __clang__
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wmissing-braces"
diff --git a/contrib/libs/pfr/include/pfr/detail/core14_loophole.hpp b/contrib/libs/pfr/include/pfr/detail/core14_loophole.hpp
index 9a1cddc6060..0d4e9ce7ad3 100644
--- a/contrib/libs/pfr/include/pfr/detail/core14_loophole.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/core14_loophole.hpp
@@ -1,5 +1,5 @@
// Copyright (c) 2017-2018 Alexandr Poltavsky, Antony Polukhin.
-// Copyright (c) 2019-2023 Antony Polukhin.
+// Copyright (c) 2019-2025 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -24,10 +24,6 @@
#include <pfr/detail/config.hpp>
-#include <type_traits>
-#include <utility>
-
-#include <pfr/detail/cast_to_layout_compatible.hpp> // still needed for enums
#include <pfr/detail/offset_based_getter.hpp>
#include <pfr/detail/fields_count.hpp>
#include <pfr/detail/make_flat_tuple_of_references.hpp>
@@ -36,6 +32,9 @@
#include <pfr/detail/rvalue_t.hpp>
#include <pfr/detail/unsafe_declval.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <utility>
+#endif
#ifdef __clang__
# pragma clang diagnostic push
diff --git a/contrib/libs/pfr/include/pfr/detail/core17.hpp b/contrib/libs/pfr/include/pfr/detail/core17.hpp
index 36d1087477d..6d536f72267 100644
--- a/contrib/libs/pfr/include/pfr/detail/core17.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/core17.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/contrib/libs/pfr/include/pfr/detail/core17_generated.hpp b/contrib/libs/pfr/include/pfr/detail/core17_generated.hpp
index dd4fb785834..bb79b55899b 100644
--- a/contrib/libs/pfr/include/pfr/detail/core17_generated.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/core17_generated.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
// Copyright (c) 2023 Denis Mikhailov
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -21,7 +21,10 @@
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/size_t_.hpp>
+
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits> // for std::conditional_t, std::is_reference
+#endif
namespace pfr { namespace detail {
@@ -2741,6 +2744,6327 @@ constexpr auto tie_as_tuple(T& val, size_t_<100>) noexcept {
);
}
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<101>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<102>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<103>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<104>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<105>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<106>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<107>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<108>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<109>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<110>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<111>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<112>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<113>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<114>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<115>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<116>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<117>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<118>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<119>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<120>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<121>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<122>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<123>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<124>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<125>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<126>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<127>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<128>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<129>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<130>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<131>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<132>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<133>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<134>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<135>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<136>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<137>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<138>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<139>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<140>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<141>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<142>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<143>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<144>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<145>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<146>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<147>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<148>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<149>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<150>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<151>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<152>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<153>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<154>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<155>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<156>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<157>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<158>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<159>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<160>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<161>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<162>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<163>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<164>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<165>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<166>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<167>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<168>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<169>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<170>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<171>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<172>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<173>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<174>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<175>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<176>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<177>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<178>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<179>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<180>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<181>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<182>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<183>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<184>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<185>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<186>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<187>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<188>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<189>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<190>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<191>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<192>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<193>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<194>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de,df
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de),detail::workaround_cast<T, decltype(df)>(df)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<195>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de,df,dg
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de),detail::workaround_cast<T, decltype(df)>(df),detail::workaround_cast<T, decltype(dg)>(dg)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<196>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de,df,dg,dh
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de),detail::workaround_cast<T, decltype(df)>(df),detail::workaround_cast<T, decltype(dg)>(dg),
+ detail::workaround_cast<T, decltype(dh)>(dh)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<197>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de,df,dg,dh,dj
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de),detail::workaround_cast<T, decltype(df)>(df),detail::workaround_cast<T, decltype(dg)>(dg),
+ detail::workaround_cast<T, decltype(dh)>(dh),detail::workaround_cast<T, decltype(dj)>(dj)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<198>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de,df,dg,dh,dj,dk
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de),detail::workaround_cast<T, decltype(df)>(df),detail::workaround_cast<T, decltype(dg)>(dg),
+ detail::workaround_cast<T, decltype(dh)>(dh),detail::workaround_cast<T, decltype(dj)>(dj),detail::workaround_cast<T, decltype(dk)>(dk)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<199>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de,df,dg,dh,dj,dk,dl
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de),detail::workaround_cast<T, decltype(df)>(df),detail::workaround_cast<T, decltype(dg)>(dg),
+ detail::workaround_cast<T, decltype(dh)>(dh),detail::workaround_cast<T, decltype(dj)>(dj),detail::workaround_cast<T, decltype(dk)>(dk),
+ detail::workaround_cast<T, decltype(dl)>(dl)
+ );
+}
+
+template <class T>
+constexpr auto tie_as_tuple(T& val, size_t_<200>) noexcept {
+ auto& [
+ a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W,X,Y,Z,
+ aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aJ,aK,aL,aM,aN,aP,aQ,aR,aS,aU,aV,aW,aX,aY,aZ,
+ ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bJ,bK,bL,bM,bN,bP,bQ,bR,bS,bU,bV,bW,bX,bY,bZ,
+ ca,cb,cc,cd,ce,cf,cg,ch,cj,ck,cl,cm,cn,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cJ,cK,cL,cM,cN,cP,cQ,cR,cS,cU,cV,cW,cX,cY,cZ,
+ da,db,dc,dd,de,df,dg,dh,dj,dk,dl,dm
+ ] = const_cast<std::remove_cv_t<T>&>(val); // ====================> Boost.PFR: User-provided type is not a SimpleAggregate.
+
+ return ::pfr::detail::make_tuple_of_references(
+ detail::workaround_cast<T, decltype(a)>(a),detail::workaround_cast<T, decltype(b)>(b),detail::workaround_cast<T, decltype(c)>(c),
+ detail::workaround_cast<T, decltype(d)>(d),detail::workaround_cast<T, decltype(e)>(e),detail::workaround_cast<T, decltype(f)>(f),
+ detail::workaround_cast<T, decltype(g)>(g),detail::workaround_cast<T, decltype(h)>(h),detail::workaround_cast<T, decltype(j)>(j),
+ detail::workaround_cast<T, decltype(k)>(k),detail::workaround_cast<T, decltype(l)>(l),detail::workaround_cast<T, decltype(m)>(m),
+ detail::workaround_cast<T, decltype(n)>(n),detail::workaround_cast<T, decltype(p)>(p),detail::workaround_cast<T, decltype(q)>(q),
+ detail::workaround_cast<T, decltype(r)>(r),detail::workaround_cast<T, decltype(s)>(s),detail::workaround_cast<T, decltype(t)>(t),
+ detail::workaround_cast<T, decltype(u)>(u),detail::workaround_cast<T, decltype(v)>(v),detail::workaround_cast<T, decltype(w)>(w),
+ detail::workaround_cast<T, decltype(x)>(x),detail::workaround_cast<T, decltype(y)>(y),detail::workaround_cast<T, decltype(z)>(z),
+ detail::workaround_cast<T, decltype(A)>(A),detail::workaround_cast<T, decltype(B)>(B),detail::workaround_cast<T, decltype(C)>(C),
+ detail::workaround_cast<T, decltype(D)>(D),detail::workaround_cast<T, decltype(E)>(E),detail::workaround_cast<T, decltype(F)>(F),
+ detail::workaround_cast<T, decltype(G)>(G),detail::workaround_cast<T, decltype(H)>(H),detail::workaround_cast<T, decltype(J)>(J),
+ detail::workaround_cast<T, decltype(K)>(K),detail::workaround_cast<T, decltype(L)>(L),detail::workaround_cast<T, decltype(M)>(M),
+ detail::workaround_cast<T, decltype(N)>(N),detail::workaround_cast<T, decltype(P)>(P),detail::workaround_cast<T, decltype(Q)>(Q),
+ detail::workaround_cast<T, decltype(R)>(R),detail::workaround_cast<T, decltype(S)>(S),detail::workaround_cast<T, decltype(U)>(U),
+ detail::workaround_cast<T, decltype(V)>(V),detail::workaround_cast<T, decltype(W)>(W),detail::workaround_cast<T, decltype(X)>(X),
+ detail::workaround_cast<T, decltype(Y)>(Y),detail::workaround_cast<T, decltype(Z)>(Z),detail::workaround_cast<T, decltype(aa)>(aa),
+ detail::workaround_cast<T, decltype(ab)>(ab),detail::workaround_cast<T, decltype(ac)>(ac),detail::workaround_cast<T, decltype(ad)>(ad),
+ detail::workaround_cast<T, decltype(ae)>(ae),detail::workaround_cast<T, decltype(af)>(af),detail::workaround_cast<T, decltype(ag)>(ag),
+ detail::workaround_cast<T, decltype(ah)>(ah),detail::workaround_cast<T, decltype(aj)>(aj),detail::workaround_cast<T, decltype(ak)>(ak),
+ detail::workaround_cast<T, decltype(al)>(al),detail::workaround_cast<T, decltype(am)>(am),detail::workaround_cast<T, decltype(an)>(an),
+ detail::workaround_cast<T, decltype(ap)>(ap),detail::workaround_cast<T, decltype(aq)>(aq),detail::workaround_cast<T, decltype(ar)>(ar),
+ detail::workaround_cast<T, decltype(as)>(as),detail::workaround_cast<T, decltype(at)>(at),detail::workaround_cast<T, decltype(au)>(au),
+ detail::workaround_cast<T, decltype(av)>(av),detail::workaround_cast<T, decltype(aw)>(aw),detail::workaround_cast<T, decltype(ax)>(ax),
+ detail::workaround_cast<T, decltype(ay)>(ay),detail::workaround_cast<T, decltype(az)>(az),detail::workaround_cast<T, decltype(aA)>(aA),
+ detail::workaround_cast<T, decltype(aB)>(aB),detail::workaround_cast<T, decltype(aC)>(aC),detail::workaround_cast<T, decltype(aD)>(aD),
+ detail::workaround_cast<T, decltype(aE)>(aE),detail::workaround_cast<T, decltype(aF)>(aF),detail::workaround_cast<T, decltype(aG)>(aG),
+ detail::workaround_cast<T, decltype(aH)>(aH),detail::workaround_cast<T, decltype(aJ)>(aJ),detail::workaround_cast<T, decltype(aK)>(aK),
+ detail::workaround_cast<T, decltype(aL)>(aL),detail::workaround_cast<T, decltype(aM)>(aM),detail::workaround_cast<T, decltype(aN)>(aN),
+ detail::workaround_cast<T, decltype(aP)>(aP),detail::workaround_cast<T, decltype(aQ)>(aQ),detail::workaround_cast<T, decltype(aR)>(aR),
+ detail::workaround_cast<T, decltype(aS)>(aS),detail::workaround_cast<T, decltype(aU)>(aU),detail::workaround_cast<T, decltype(aV)>(aV),
+ detail::workaround_cast<T, decltype(aW)>(aW),detail::workaround_cast<T, decltype(aX)>(aX),detail::workaround_cast<T, decltype(aY)>(aY),
+ detail::workaround_cast<T, decltype(aZ)>(aZ),detail::workaround_cast<T, decltype(ba)>(ba),detail::workaround_cast<T, decltype(bb)>(bb),
+ detail::workaround_cast<T, decltype(bc)>(bc),detail::workaround_cast<T, decltype(bd)>(bd),detail::workaround_cast<T, decltype(be)>(be),
+ detail::workaround_cast<T, decltype(bf)>(bf),detail::workaround_cast<T, decltype(bg)>(bg),detail::workaround_cast<T, decltype(bh)>(bh),
+ detail::workaround_cast<T, decltype(bj)>(bj),detail::workaround_cast<T, decltype(bk)>(bk),detail::workaround_cast<T, decltype(bl)>(bl),
+ detail::workaround_cast<T, decltype(bm)>(bm),detail::workaround_cast<T, decltype(bn)>(bn),detail::workaround_cast<T, decltype(bp)>(bp),
+ detail::workaround_cast<T, decltype(bq)>(bq),detail::workaround_cast<T, decltype(br)>(br),detail::workaround_cast<T, decltype(bs)>(bs),
+ detail::workaround_cast<T, decltype(bt)>(bt),detail::workaround_cast<T, decltype(bu)>(bu),detail::workaround_cast<T, decltype(bv)>(bv),
+ detail::workaround_cast<T, decltype(bw)>(bw),detail::workaround_cast<T, decltype(bx)>(bx),detail::workaround_cast<T, decltype(by)>(by),
+ detail::workaround_cast<T, decltype(bz)>(bz),detail::workaround_cast<T, decltype(bA)>(bA),detail::workaround_cast<T, decltype(bB)>(bB),
+ detail::workaround_cast<T, decltype(bC)>(bC),detail::workaround_cast<T, decltype(bD)>(bD),detail::workaround_cast<T, decltype(bE)>(bE),
+ detail::workaround_cast<T, decltype(bF)>(bF),detail::workaround_cast<T, decltype(bG)>(bG),detail::workaround_cast<T, decltype(bH)>(bH),
+ detail::workaround_cast<T, decltype(bJ)>(bJ),detail::workaround_cast<T, decltype(bK)>(bK),detail::workaround_cast<T, decltype(bL)>(bL),
+ detail::workaround_cast<T, decltype(bM)>(bM),detail::workaround_cast<T, decltype(bN)>(bN),detail::workaround_cast<T, decltype(bP)>(bP),
+ detail::workaround_cast<T, decltype(bQ)>(bQ),detail::workaround_cast<T, decltype(bR)>(bR),detail::workaround_cast<T, decltype(bS)>(bS),
+ detail::workaround_cast<T, decltype(bU)>(bU),detail::workaround_cast<T, decltype(bV)>(bV),detail::workaround_cast<T, decltype(bW)>(bW),
+ detail::workaround_cast<T, decltype(bX)>(bX),detail::workaround_cast<T, decltype(bY)>(bY),detail::workaround_cast<T, decltype(bZ)>(bZ),
+ detail::workaround_cast<T, decltype(ca)>(ca),detail::workaround_cast<T, decltype(cb)>(cb),detail::workaround_cast<T, decltype(cc)>(cc),
+ detail::workaround_cast<T, decltype(cd)>(cd),detail::workaround_cast<T, decltype(ce)>(ce),detail::workaround_cast<T, decltype(cf)>(cf),
+ detail::workaround_cast<T, decltype(cg)>(cg),detail::workaround_cast<T, decltype(ch)>(ch),detail::workaround_cast<T, decltype(cj)>(cj),
+ detail::workaround_cast<T, decltype(ck)>(ck),detail::workaround_cast<T, decltype(cl)>(cl),detail::workaround_cast<T, decltype(cm)>(cm),
+ detail::workaround_cast<T, decltype(cn)>(cn),detail::workaround_cast<T, decltype(cp)>(cp),detail::workaround_cast<T, decltype(cq)>(cq),
+ detail::workaround_cast<T, decltype(cr)>(cr),detail::workaround_cast<T, decltype(cs)>(cs),detail::workaround_cast<T, decltype(ct)>(ct),
+ detail::workaround_cast<T, decltype(cu)>(cu),detail::workaround_cast<T, decltype(cv)>(cv),detail::workaround_cast<T, decltype(cw)>(cw),
+ detail::workaround_cast<T, decltype(cx)>(cx),detail::workaround_cast<T, decltype(cy)>(cy),detail::workaround_cast<T, decltype(cz)>(cz),
+ detail::workaround_cast<T, decltype(cA)>(cA),detail::workaround_cast<T, decltype(cB)>(cB),detail::workaround_cast<T, decltype(cC)>(cC),
+ detail::workaround_cast<T, decltype(cD)>(cD),detail::workaround_cast<T, decltype(cE)>(cE),detail::workaround_cast<T, decltype(cF)>(cF),
+ detail::workaround_cast<T, decltype(cG)>(cG),detail::workaround_cast<T, decltype(cH)>(cH),detail::workaround_cast<T, decltype(cJ)>(cJ),
+ detail::workaround_cast<T, decltype(cK)>(cK),detail::workaround_cast<T, decltype(cL)>(cL),detail::workaround_cast<T, decltype(cM)>(cM),
+ detail::workaround_cast<T, decltype(cN)>(cN),detail::workaround_cast<T, decltype(cP)>(cP),detail::workaround_cast<T, decltype(cQ)>(cQ),
+ detail::workaround_cast<T, decltype(cR)>(cR),detail::workaround_cast<T, decltype(cS)>(cS),detail::workaround_cast<T, decltype(cU)>(cU),
+ detail::workaround_cast<T, decltype(cV)>(cV),detail::workaround_cast<T, decltype(cW)>(cW),detail::workaround_cast<T, decltype(cX)>(cX),
+ detail::workaround_cast<T, decltype(cY)>(cY),detail::workaround_cast<T, decltype(cZ)>(cZ),detail::workaround_cast<T, decltype(da)>(da),
+ detail::workaround_cast<T, decltype(db)>(db),detail::workaround_cast<T, decltype(dc)>(dc),detail::workaround_cast<T, decltype(dd)>(dd),
+ detail::workaround_cast<T, decltype(de)>(de),detail::workaround_cast<T, decltype(df)>(df),detail::workaround_cast<T, decltype(dg)>(dg),
+ detail::workaround_cast<T, decltype(dh)>(dh),detail::workaround_cast<T, decltype(dj)>(dj),detail::workaround_cast<T, decltype(dk)>(dk),
+ detail::workaround_cast<T, decltype(dl)>(dl),detail::workaround_cast<T, decltype(dm)>(dm)
+ );
+}
+
template <class T, std::size_t I>
constexpr void tie_as_tuple(T& /*val*/, size_t_<I>) noexcept {
diff --git a/contrib/libs/pfr/include/pfr/detail/core_name14_disabled.hpp b/contrib/libs/pfr/include/pfr/detail/core_name14_disabled.hpp
index 4ba17dbb14c..b59ea7e4137 100644
--- a/contrib/libs/pfr/include/pfr/detail/core_name14_disabled.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/core_name14_disabled.hpp
@@ -37,6 +37,15 @@ constexpr auto tie_as_names_tuple() noexcept {
return detail::sequence_tuple::make_sequence_tuple();
}
+
+template <class T, class F>
+constexpr void for_each_field_with_name(T&& /* value */, F&& /* func */) {
+ static_assert(
+ sizeof(T) && false,
+ "====================> Boost.PFR: Field's names extracting functionality requires C++20."
+ );
+}
+
}} // namespace pfr::detail
#endif // PFR_DETAIL_CORE_NAME14_DISABLED_HPP
diff --git a/contrib/libs/pfr/include/pfr/detail/core_name20_static.hpp b/contrib/libs/pfr/include/pfr/detail/core_name20_static.hpp
index 2eca631c594..fdc4113750d 100644
--- a/contrib/libs/pfr/include/pfr/detail/core_name20_static.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/core_name20_static.hpp
@@ -13,16 +13,21 @@
#pragma once
#include <pfr/detail/config.hpp>
+
#include <pfr/detail/core.hpp>
-#include <pfr/detail/sequence_tuple.hpp>
-#include <pfr/detail/make_integer_sequence.hpp>
+#include <pfr/detail/fake_object.hpp>
#include <pfr/detail/fields_count.hpp>
+#include <pfr/detail/for_each_field.hpp>
+#include <pfr/detail/make_integer_sequence.hpp>
+#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/stdarray.hpp>
-#include <pfr/detail/fake_object.hpp>
+
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits>
#include <string_view>
#include <array>
#include <memory> // for std::addressof
+#endif
namespace pfr { namespace detail {
@@ -99,7 +104,7 @@ consteval auto name_of_field_impl() noexcept {
static_assert(!sv.empty(),
"====================> Boost.PFR: Field reflection parser configured in a wrong way. "
"Please define the PFR_FUNCTION_SIGNATURE to a compiler specific macro, "
- "that outputs the whole function signature including non-type template parameters."
+ "that outputs the whole function signature including non-type template parameters."
);
constexpr auto skip = detail::make_core_name_skip PFR_CORE_NAME_PARSING;
@@ -167,7 +172,7 @@ consteval auto name_of_field() noexcept {
&& std::string_view{
detail::name_of_field_impl<
core_name_skip, detail::make_clang_wrapper(std::addressof(
- fake_object<core_name_skip>.size_at_begin
+ detail::fake_object<core_name_skip>().size_at_begin
))
>().data()
} == "size_at_begin",
@@ -187,7 +192,7 @@ consteval auto name_of_field() noexcept {
template <class T, std::size_t I>
inline constexpr auto stored_name_of_field = detail::name_of_field<T,
detail::make_clang_wrapper(std::addressof(detail::sequence_tuple::get<I>(
- detail::tie_as_tuple(detail::fake_object<T>)
+ detail::tie_as_tuple(detail::fake_object<T>())
)))
>();
@@ -236,6 +241,22 @@ constexpr auto tie_as_names_tuple() noexcept {
return detail::tie_as_names_tuple_impl<T>(detail::make_index_sequence<detail::fields_count<T>()>{});
}
+template <class T, class F>
+constexpr void for_each_field_with_name(T&& value, F&& func) {
+ return pfr::detail::for_each_field(
+ std::forward<T>(value),
+ [f = std::forward<F>(func)](auto&& field, auto index) mutable {
+ using IndexType = decltype(index);
+ using FieldType = decltype(field);
+ constexpr auto name = pfr::detail::get_name<std::remove_reference_t<T>, IndexType::value>();
+ if constexpr (std::is_invocable_v<F, std::string_view, FieldType, IndexType>) {
+ f(name, std::forward<FieldType>(field), index);
+ } else {
+ f(name, std::forward<FieldType>(field));
+ }
+ });
+}
+
}} // namespace pfr::detail
#endif // PFR_DETAIL_CORE_NAME20_STATIC_HPP
diff --git a/contrib/libs/pfr/include/pfr/detail/detectors.hpp b/contrib/libs/pfr/include/pfr/detail/detectors.hpp
index b9790e6d51c..70d1f9a7c13 100644
--- a/contrib/libs/pfr/include/pfr/detail/detectors.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/detectors.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,15 +9,17 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
#include <functional>
#include <type_traits>
+#endif
namespace pfr { namespace detail {
///////////////////// `value` is true if Detector<Tleft, Tright> does not compile (SFINAE)
struct can_not_apply{};
template <template <class, class> class Detector, class Tleft, class Tright>
- struct not_appliable {
+ struct not_applicable {
static constexpr bool value = std::is_same<
Detector<Tleft, Tright>,
can_not_apply
diff --git a/contrib/libs/pfr/include/pfr/detail/fake_object.hpp b/contrib/libs/pfr/include/pfr/detail/fake_object.hpp
index 0d4e0a115a0..c9dc61ee5d0 100644
--- a/contrib/libs/pfr/include/pfr/detail/fake_object.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/fake_object.hpp
@@ -1,4 +1,5 @@
// Copyright (c) 2023 Bela Schaum, X-Ryl669, Denis Mikhailov.
+// Copyright (c) 2024-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -14,12 +15,40 @@
#include <pfr/detail/config.hpp>
+#ifdef __clang__
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wundefined-internal"
+# pragma clang diagnostic ignored "-Wundefined-var-template"
+#endif
+
namespace pfr { namespace detail {
+// This class has external linkage while T has not sure.
+template <class T>
+struct wrapper {
+ const T value;
+};
+
+// This variable servers as a link-time assert.
+// If linker requires it, then `fake_object()` is used at runtime.
template <class T>
-extern const T fake_object;
+extern const wrapper<T> do_not_use_PFR_with_local_types;
+
+// For returning non default constructible types, it's exclusively used in member name retrieval.
+//
+// Neither std::declval nor pfr::detail::unsafe_declval are usable there.
+// This takes advantage of C++20 features, while pfr::detail::unsafe_declval works
+// with the former standards.
+template <class T>
+constexpr const T& fake_object() noexcept {
+ return do_not_use_PFR_with_local_types<T>.value;
+}
}} // namespace pfr::detail
+#ifdef __clang__
+# pragma clang diagnostic pop
+#endif
+
#endif // PFR_DETAIL_FAKE_OBJECT_HPP
diff --git a/contrib/libs/pfr/include/pfr/detail/fields_count.hpp b/contrib/libs/pfr/include/pfr/detail/fields_count.hpp
index 666d6ae1710..822b1784448 100644
--- a/contrib/libs/pfr/include/pfr/detail/fields_count.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/fields_count.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -12,9 +12,11 @@
#include <pfr/detail/size_t_.hpp>
#include <pfr/detail/unsafe_declval.hpp>
-#include <climits> // CHAR_BIT
+#if !defined(PFR_INTERFACE_UNIT)
+#include <limits>
#include <type_traits>
#include <utility> // metaprogramming stuff
+#endif
#ifdef __clang__
# pragma clang diagnostic push
@@ -26,6 +28,11 @@
namespace pfr { namespace detail {
+///////////////////// min without including <algorithm>
+constexpr std::size_t min_of_size_t(std::size_t a, std::size_t b) noexcept {
+ return b < a ? b : a;
+}
+
///////////////////// Structure that can be converted to reference to anything
struct ubiq_lref_constructor {
std::size_t ignore;
@@ -46,6 +53,14 @@ struct ubiq_rref_constructor {
}
};
+///////////////////// Hand-made is_complete<T> trait
+template <typename T, typename = void>
+struct is_complete : std::false_type
+{};
+
+template <typename T>
+struct is_complete<T, decltype(void(sizeof(T)))> : std::integral_constant<bool, true>
+{};
#ifndef __cpp_lib_is_aggregate
///////////////////// Hand-made is_aggregate_initializable_n<T> trait
@@ -74,8 +89,16 @@ template <class T> struct is_single_field_and_aggregate_initializable<1, T>: std
// Before C++20 aggregates could be constructed from `decltype(ubiq_?ref_constructor{I})...` but type traits report that
// there's no constructor from `decltype(ubiq_?ref_constructor{I})...`
// Special case for N == 1: `std::is_constructible<T, ubiq_?ref_constructor>` returns true if N == 1 and T is copy/move constructible.
-template <class T, std::size_t N>
+template <class T, std::size_t N, class /*Enable*/ = void>
struct is_aggregate_initializable_n {
+ static constexpr bool value =
+ std::is_empty<T>::value
+ || std::is_array<T>::value
+ ;
+};
+
+template <class T, std::size_t N>
+struct is_aggregate_initializable_n<T, N, std::enable_if_t<std::is_class<T>::value && !std::is_empty<T>::value>> {
template <std::size_t ...I>
static constexpr bool is_not_constructible_n(std::index_sequence<I...>) noexcept {
return (!std::is_constructible<T, decltype(ubiq_lref_constructor{I})...>::value && !std::is_constructible<T, decltype(ubiq_rref_constructor{I})...>::value)
@@ -83,12 +106,7 @@ struct is_aggregate_initializable_n {
;
}
- static constexpr bool value =
- std::is_empty<T>::value
- || std::is_array<T>::value
- || std::is_fundamental<T>::value
- || is_not_constructible_n(detail::make_index_sequence<N>{})
- ;
+ static constexpr bool value = is_not_constructible_n(detail::make_index_sequence<N>{});
};
#endif // #ifndef __cpp_lib_is_aggregate
@@ -127,16 +145,16 @@ struct ubiq_rref_base_asserting {
}
};
-template <class T, std::size_t I0, std::size_t... I, class /*Enable*/ = typename std::enable_if<std::is_copy_constructible<T>::value>::type>
+template <class T, std::size_t I0, std::size_t... I, class /*Enable*/ = std::enable_if_t<std::is_copy_constructible<T>::value>>
constexpr auto assert_first_not_base(std::index_sequence<I0, I...>) noexcept
- -> typename std::add_pointer<decltype(T{ ubiq_lref_base_asserting<T>{}, ubiq_lref_constructor{I}... })>::type
+ -> std::add_pointer_t<decltype(T{ ubiq_lref_base_asserting<T>{}, ubiq_lref_constructor{I}... })>
{
return nullptr;
}
-template <class T, std::size_t I0, std::size_t... I, class /*Enable*/ = typename std::enable_if<!std::is_copy_constructible<T>::value>::type>
+template <class T, std::size_t I0, std::size_t... I, class /*Enable*/ = std::enable_if_t<!std::is_copy_constructible<T>::value>>
constexpr auto assert_first_not_base(std::index_sequence<I0, I...>) noexcept
- -> typename std::add_pointer<decltype(T{ ubiq_rref_base_asserting<T>{}, ubiq_rref_constructor{I}... })>::type
+ -> std::add_pointer_t<decltype(T{ ubiq_rref_base_asserting<T>{}, ubiq_rref_constructor{I}... })>
{
return nullptr;
}
@@ -147,17 +165,40 @@ constexpr void* assert_first_not_base(std::index_sequence<>) noexcept
return nullptr;
}
-///////////////////// Helper for SFINAE on fields count
-template <class T, std::size_t... I, class /*Enable*/ = typename std::enable_if<std::is_copy_constructible<T>::value>::type>
-constexpr auto enable_if_constructible_helper(std::index_sequence<I...>) noexcept
- -> typename std::add_pointer<decltype(T{ ubiq_lref_constructor{I}... })>::type;
+template <class T, std::size_t N>
+constexpr void assert_first_not_base(int) noexcept {}
+
+template <class T, std::size_t N>
+constexpr auto assert_first_not_base(long) noexcept
+ -> std::enable_if_t<std::is_class<T>::value>
+{
+ detail::assert_first_not_base<T>(detail::make_index_sequence<N>{});
+}
+
+///////////////////// Helpers for initializable detection
+// Note that these take O(N) compile time and memory!
+template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<std::is_copy_constructible<T>::value>>
+constexpr auto enable_if_initializable_helper(std::index_sequence<I...>) noexcept
+ -> std::add_pointer_t<decltype(T{ubiq_lref_constructor{I}...})>;
-template <class T, std::size_t... I, class /*Enable*/ = typename std::enable_if<!std::is_copy_constructible<T>::value>::type>
-constexpr auto enable_if_constructible_helper(std::index_sequence<I...>) noexcept
- -> typename std::add_pointer<decltype(T{ ubiq_rref_constructor{I}... })>::type;
+template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<!std::is_copy_constructible<T>::value>>
+constexpr auto enable_if_initializable_helper(std::index_sequence<I...>) noexcept
+ -> std::add_pointer_t<decltype(T{ubiq_rref_constructor{I}...})>;
-template <class T, std::size_t N, class /*Enable*/ = decltype( enable_if_constructible_helper<T>(detail::make_index_sequence<N>()) ) >
-using enable_if_constructible_helper_t = std::size_t;
+template <class T, std::size_t N, class U = std::size_t, class /*Enable*/ = decltype(detail::enable_if_initializable_helper<T>(detail::make_index_sequence<N>()))>
+using enable_if_initializable_helper_t = U;
+
+template <class T, std::size_t N>
+constexpr auto is_initializable(long) noexcept
+ -> detail::enable_if_initializable_helper_t<T, N, bool>
+{
+ return true;
+}
+
+template <class T, std::size_t N>
+constexpr bool is_initializable(int) noexcept {
+ return false;
+}
///////////////////// Helpers for range size detection
template <std::size_t Begin, std::size_t Last>
@@ -166,92 +207,158 @@ using is_one_element_range = std::integral_constant<bool, Begin == Last>;
using multi_element_range = std::false_type;
using one_element_range = std::true_type;
-///////////////////// Non greedy fields count search. Templates instantiation depth is log(sizeof(T)), templates instantiation count is log(sizeof(T)).
-template <class T, std::size_t Begin, std::size_t Middle>
-constexpr std::size_t detect_fields_count(detail::one_element_range, long) noexcept {
+///////////////////// Fields count next expected compiler limitation
+constexpr std::size_t fields_count_compiler_limitation_next(std::size_t n) noexcept {
+#if defined(_MSC_VER) && (_MSC_VER <= 1920)
+ if (n < 1024)
+ return 1024;
+#else
+ static_cast<void>(n);
+#endif
+ return (std::numeric_limits<std::size_t>::max)();
+}
+
+///////////////////// Fields count upper bound based on sizeof(T)
+template <class T>
+constexpr std::size_t fields_count_upper_bound_loose() noexcept {
+ return sizeof(T) * std::numeric_limits<unsigned char>::digits + 1 /* +1 for "Arrays of Length Zero" extension */;
+}
+
+///////////////////// Fields count binary search.
+// Template instantiation: depth is O(log(result)), count is O(log(result)), cost is O(result * log(result)).
+template <class T, std::size_t Begin, std::size_t Last>
+constexpr std::size_t fields_count_binary_search(detail::one_element_range, long) noexcept {
static_assert(
- Begin == Middle,
+ Begin == Last,
"====================> Boost.PFR: Internal logic error."
);
return Begin;
}
-template <class T, std::size_t Begin, std::size_t Middle>
-constexpr std::size_t detect_fields_count(detail::multi_element_range, int) noexcept;
+template <class T, std::size_t Begin, std::size_t Last>
+constexpr std::size_t fields_count_binary_search(detail::multi_element_range, int) noexcept;
-template <class T, std::size_t Begin, std::size_t Middle>
-constexpr auto detect_fields_count(detail::multi_element_range, long) noexcept
- -> detail::enable_if_constructible_helper_t<T, Middle>
+template <class T, std::size_t Begin, std::size_t Last>
+constexpr auto fields_count_binary_search(detail::multi_element_range, long) noexcept
+ -> detail::enable_if_initializable_helper_t<T, (Begin + Last + 1) / 2>
{
- constexpr std::size_t next_v = Middle + (Middle - Begin + 1) / 2;
- return detail::detect_fields_count<T, Middle, next_v>(detail::is_one_element_range<Middle, next_v>{}, 1L);
+ constexpr std::size_t next_v = (Begin + Last + 1) / 2;
+ return detail::fields_count_binary_search<T, next_v, Last>(detail::is_one_element_range<next_v, Last>{}, 1L);
+}
+
+template <class T, std::size_t Begin, std::size_t Last>
+constexpr std::size_t fields_count_binary_search(detail::multi_element_range, int) noexcept {
+ constexpr std::size_t next_v = (Begin + Last + 1) / 2 - 1;
+ return detail::fields_count_binary_search<T, Begin, next_v>(detail::is_one_element_range<Begin, next_v>{}, 1L);
}
-template <class T, std::size_t Begin, std::size_t Middle>
-constexpr std::size_t detect_fields_count(detail::multi_element_range, int) noexcept {
- constexpr std::size_t next_v = Begin + (Middle - Begin) / 2;
- return detail::detect_fields_count<T, Begin, next_v>(detail::is_one_element_range<Begin, next_v>{}, 1L);
+template <class T, std::size_t Begin, std::size_t N>
+constexpr std::size_t fields_count_upper_bound(int, int) noexcept {
+ return N - 1;
}
-///////////////////// Greedy search. Templates instantiation depth is log(sizeof(T)), templates instantiation count is log(sizeof(T))*T in worst case.
-template <class T, std::size_t N>
-constexpr auto detect_fields_count_greedy_remember(long) noexcept
- -> detail::enable_if_constructible_helper_t<T, N>
+template <class T, std::size_t Begin, std::size_t N>
+constexpr auto fields_count_upper_bound(long, long) noexcept
+ -> std::enable_if_t<(N > detail::fields_count_upper_bound_loose<T>()), std::size_t>
{
- return N;
+ static_assert(
+ !detail::is_initializable<T, detail::fields_count_upper_bound_loose<T>() + 1>(1L),
+ "====================> Boost.PFR: Types with user specified constructors (non-aggregate initializable types) are not supported.");
+ return detail::fields_count_upper_bound_loose<T>();
}
-template <class T, std::size_t N>
-constexpr std::size_t detect_fields_count_greedy_remember(int) noexcept {
- return 0;
+template <class T, std::size_t Begin, std::size_t N>
+constexpr auto fields_count_upper_bound(long, int) noexcept
+ -> detail::enable_if_initializable_helper_t<T, N>
+{
+ constexpr std::size_t next_optimal = Begin + (N - Begin) * 2;
+ constexpr std::size_t next = detail::min_of_size_t(next_optimal, detail::fields_count_compiler_limitation_next(N));
+ return detail::fields_count_upper_bound<T, Begin, next>(1L, 1L);
+}
+
+///////////////////// Fields count lower bound linear search.
+// Template instantiation: depth is O(log(result)), count is O(result), cost is O(result^2).
+template <class T, std::size_t Begin, std::size_t Last, class RangeSize, std::size_t Result>
+constexpr std::size_t fields_count_lower_bound(RangeSize, size_t_<Result>) noexcept {
+ return Result;
}
template <class T, std::size_t Begin, std::size_t Last>
-constexpr std::size_t detect_fields_count_greedy(detail::one_element_range) noexcept {
+constexpr std::size_t fields_count_lower_bound(detail::one_element_range, size_t_<0> = {}) noexcept {
static_assert(
Begin == Last,
"====================> Boost.PFR: Internal logic error."
);
- return detail::detect_fields_count_greedy_remember<T, Begin>(1L);
+ return detail::is_initializable<T, Begin>(1L) ? Begin : 0;
}
template <class T, std::size_t Begin, std::size_t Last>
-constexpr std::size_t detect_fields_count_greedy(detail::multi_element_range) noexcept {
+constexpr std::size_t fields_count_lower_bound(detail::multi_element_range, size_t_<0> = {}) noexcept {
+ // Binary partition to limit template depth.
constexpr std::size_t middle = Begin + (Last - Begin) / 2;
- constexpr std::size_t fields_count_big_range = detail::detect_fields_count_greedy<T, middle + 1, Last>(
- detail::is_one_element_range<middle + 1, Last>{}
+ constexpr std::size_t result_maybe = detail::fields_count_lower_bound<T, Begin, middle>(
+ detail::is_one_element_range<Begin, middle>{}
);
+ return detail::fields_count_lower_bound<T, middle + 1, Last>(
+ detail::is_one_element_range<middle + 1, Last>{},
+ size_t_<result_maybe>{}
+ );
+}
- constexpr std::size_t small_range_begin = (fields_count_big_range ? 0 : Begin);
- constexpr std::size_t small_range_last = (fields_count_big_range ? 0 : middle);
- constexpr std::size_t fields_count_small_range = detail::detect_fields_count_greedy<T, small_range_begin, small_range_last>(
- detail::is_one_element_range<small_range_begin, small_range_last>{}
+template <class T, std::size_t Begin, std::size_t Result>
+constexpr std::size_t fields_count_lower_bound_unbounded(int, size_t_<Result>) noexcept {
+ return Result;
+}
+
+template <class T, std::size_t Begin>
+constexpr auto fields_count_lower_bound_unbounded(long, size_t_<0>) noexcept
+ -> std::enable_if_t<(Begin >= detail::fields_count_upper_bound_loose<T>()), std::size_t>
+{
+ static_assert(
+ detail::is_initializable<T, detail::fields_count_upper_bound_loose<T>()>(1L),
+ "====================> Boost.PFR: Type must be aggregate initializable.");
+ return detail::fields_count_upper_bound_loose<T>();
+}
+
+template <class T, std::size_t Begin>
+constexpr std::size_t fields_count_lower_bound_unbounded(int, size_t_<0>) noexcept {
+ constexpr std::size_t last = detail::min_of_size_t(Begin * 2, detail::fields_count_upper_bound_loose<T>()) - 1;
+ constexpr std::size_t result_maybe = detail::fields_count_lower_bound<T, Begin, last>(
+ detail::is_one_element_range<Begin, last>{}
);
- return fields_count_big_range ? fields_count_big_range : fields_count_small_range;
+ return detail::fields_count_lower_bound_unbounded<T, last + 1>(1L, size_t_<result_maybe>{});
}
-///////////////////// Choosing between array size, greedy and non greedy search.
-template <class T, std::size_t N>
-constexpr auto detect_fields_count_dispatch(size_t_<N>, long, long) noexcept
- -> typename std::enable_if<std::is_array<T>::value, std::size_t>::type
+///////////////////// Choosing between array size, unbounded binary search, and linear search followed by unbounded binary search.
+template <class T>
+constexpr auto fields_count_dispatch(long, long, std::false_type /*are_preconditions_met*/) noexcept {
+ return 0;
+}
+
+template <class T>
+constexpr auto fields_count_dispatch(long, long, std::true_type /*are_preconditions_met*/) noexcept
+ -> std::enable_if_t<std::is_array<T>::value, std::size_t>
{
- return sizeof(T) / sizeof(typename std::remove_all_extents<T>::type);
+ return sizeof(T) / sizeof(std::remove_all_extents_t<T>);
}
-template <class T, std::size_t N>
-constexpr auto detect_fields_count_dispatch(size_t_<N>, long, int) noexcept
+template <class T>
+constexpr auto fields_count_dispatch(long, int, std::true_type /*are_preconditions_met*/) noexcept
-> decltype(sizeof(T{}))
{
- constexpr std::size_t middle = N / 2 + 1;
- return detail::detect_fields_count<T, 0, middle>(detail::multi_element_range{}, 1L);
+ constexpr std::size_t typical_fields_count = 4;
+ constexpr std::size_t last = detail::fields_count_upper_bound<T, typical_fields_count / 2, typical_fields_count>(1L, 1L);
+ return detail::fields_count_binary_search<T, 0, last>(detail::is_one_element_range<0, last>{}, 1L);
}
-template <class T, std::size_t N>
-constexpr std::size_t detect_fields_count_dispatch(size_t_<N>, int, int) noexcept {
- // T is not default aggregate initialzable. It means that at least one of the members is not default constructible,
- // so we have to check all the aggregate initializations for T up to N parameters and return the bigest succeeded
- // (we can not use binary search for detecting fields count).
- return detail::detect_fields_count_greedy<T, 0, N>(detail::multi_element_range{});
+template <class T>
+constexpr std::size_t fields_count_dispatch(int, int, std::true_type /*are_preconditions_met*/) noexcept {
+ // T is not default aggregate initializable. This means that at least one of the members is not default-constructible.
+ // Use linear search to find the smallest valid initializer, after which we unbounded binary search for the largest.
+ constexpr std::size_t begin = detail::fields_count_lower_bound_unbounded<T, 1>(1L, size_t_<0>{});
+
+ constexpr std::size_t last = detail::fields_count_upper_bound<T, begin, begin + 1>(1L, 1L);
+ return detail::fields_count_binary_search<T, begin, last>(detail::is_one_element_range<begin, last>{}, 1L);
}
///////////////////// Returns fields count
@@ -259,32 +366,52 @@ template <class T>
constexpr std::size_t fields_count() noexcept {
using type = std::remove_cv_t<T>;
+ constexpr bool type_is_complete = detail::is_complete<type>::value;
static_assert(
- !std::is_reference<type>::value,
- "====================> Boost.PFR: Attempt to get fields count on a reference. This is not allowed because that could hide an issue and different library users expect different behavior in that case."
+ type_is_complete,
+ "====================> Boost.PFR: Type must be complete."
);
-#if !PFR_HAS_GUARANTEED_COPY_ELISION
+ constexpr bool type_is_not_a_reference = !std::is_reference<type>::value
+ || !type_is_complete // do not show assert if previous check failed
+ ;
static_assert(
+ type_is_not_a_reference,
+ "====================> Boost.PFR: Attempt to get fields count on a reference. This is not allowed because that could hide an issue and different library users expect different behavior in that case."
+ );
+
+#if PFR_HAS_GUARANTEED_COPY_ELISION
+ constexpr bool type_fields_are_move_constructible = true;
+#else
+ constexpr bool type_fields_are_move_constructible =
std::is_copy_constructible<std::remove_all_extents_t<type>>::value || (
std::is_move_constructible<std::remove_all_extents_t<type>>::value
&& std::is_move_assignable<std::remove_all_extents_t<type>>::value
- ),
+ )
+ || !type_is_not_a_reference // do not show assert if previous check failed
+ ;
+ static_assert(
+ type_fields_are_move_constructible,
"====================> Boost.PFR: Type and each field in the type must be copy constructible (or move constructible and move assignable)."
);
#endif // #if !PFR_HAS_GUARANTEED_COPY_ELISION
+ constexpr bool type_is_not_polymorphic = !std::is_polymorphic<type>::value;
static_assert(
- !std::is_polymorphic<type>::value,
+ type_is_not_polymorphic,
"====================> Boost.PFR: Type must have no virtual function, because otherwise it is not aggregate initializable."
);
#ifdef __cpp_lib_is_aggregate
- static_assert(
+ constexpr bool type_is_aggregate =
std::is_aggregate<type>::value // Does not return `true` for built-in types.
- || std::is_scalar<type>::value,
+ || std::is_scalar<type>::value;
+ static_assert(
+ type_is_aggregate,
"====================> Boost.PFR: Type must be aggregate initializable."
);
+#else
+ constexpr bool type_is_aggregate = true;
#endif
// Can't use the following. See the non_std_layout.cpp test.
@@ -295,26 +422,28 @@ constexpr std::size_t fields_count() noexcept {
// );
//#endif
-#if defined(_MSC_VER) && (_MSC_VER <= 1920)
- // Workaround for msvc compilers. Versions <= 1920 have a limit of max 1024 elements in template parameter pack
- constexpr std::size_t max_fields_count = (sizeof(type) * CHAR_BIT >= 1024 ? 1024 : sizeof(type) * CHAR_BIT);
-#else
- constexpr std::size_t max_fields_count = (sizeof(type) * CHAR_BIT); // We multiply by CHAR_BIT because the type may have bitfields in T
-#endif
+ constexpr bool no_errors =
+ type_is_complete && type_is_not_a_reference && type_fields_are_move_constructible
+ && type_is_not_polymorphic && type_is_aggregate;
- constexpr std::size_t result = detail::detect_fields_count_dispatch<type>(size_t_<max_fields_count>{}, 1L, 1L);
+ constexpr std::size_t result = detail::fields_count_dispatch<type>(1L, 1L, std::integral_constant<bool, no_errors>{});
- detail::assert_first_not_base<type>(detail::make_index_sequence<result>{});
+ detail::assert_first_not_base<type, result>(1L);
#ifndef __cpp_lib_is_aggregate
+ constexpr bool type_is_aggregate_initializable_n =
+ detail::is_aggregate_initializable_n<type, result>::value // Does not return `true` for built-in types.
+ || std::is_scalar<type>::value;
static_assert(
- is_aggregate_initializable_n<type, result>::value,
+ type_is_aggregate_initializable_n,
"====================> Boost.PFR: Types with user specified constructors (non-aggregate initializable types) are not supported."
);
+#else
+ constexpr bool type_is_aggregate_initializable_n = true;
#endif
static_assert(
- result != 0 || std::is_empty<type>::value || std::is_fundamental<type>::value || std::is_reference<type>::value,
+ result != 0 || std::is_empty<type>::value || std::is_fundamental<type>::value || std::is_reference<type>::value || !no_errors || !type_is_aggregate_initializable_n,
"====================> Boost.PFR: If there's no other failed static asserts then something went wrong. Please report this issue to the github along with the structure you're reflecting."
);
diff --git a/contrib/libs/pfr/include/pfr/detail/for_each_field.hpp b/contrib/libs/pfr/include/pfr/detail/for_each_field.hpp
new file mode 100644
index 00000000000..70125b673e3
--- /dev/null
+++ b/contrib/libs/pfr/include/pfr/detail/for_each_field.hpp
@@ -0,0 +1,48 @@
+// Copyright (c) 2016-2025 Antony Polukhin
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef PFR_DETAIL_FOR_EACH_FIELD_HPP
+#define PFR_DETAIL_FOR_EACH_FIELD_HPP
+#pragma once
+
+#include <pfr/detail/config.hpp>
+
+#include <pfr/detail/core.hpp>
+#include <pfr/detail/fields_count.hpp>
+#include <pfr/detail/for_each_field_impl.hpp>
+#include <pfr/detail/make_integer_sequence.hpp>
+
+#if !defined(PFR_INTERFACE_UNIT)
+#include <type_traits> // metaprogramming stuff
+#endif
+
+namespace pfr { namespace detail {
+
+template <class T, class F>
+constexpr void for_each_field(T&& value, F&& func) {
+ constexpr std::size_t fields_count_val = pfr::detail::fields_count<std::remove_reference_t<T>>();
+
+ ::pfr::detail::for_each_field_dispatcher(
+ value,
+ [f = std::forward<F>(func)](auto&& t) mutable {
+ // MSVC related workaround. Its lambdas do not capture constexprs.
+ constexpr std::size_t fields_count_val_in_lambda
+ = pfr::detail::fields_count<std::remove_reference_t<T>>();
+
+ ::pfr::detail::for_each_field_impl(
+ t,
+ std::forward<F>(f),
+ detail::make_index_sequence<fields_count_val_in_lambda>{},
+ std::is_rvalue_reference<T&&>{}
+ );
+ },
+ detail::make_index_sequence<fields_count_val>{}
+ );
+}
+
+}} // namespace pfr::detail
+
+
+#endif // PFR_DETAIL_FOR_EACH_FIELD_HPP
diff --git a/contrib/libs/pfr/include/pfr/detail/for_each_field_impl.hpp b/contrib/libs/pfr/include/pfr/detail/for_each_field_impl.hpp
index 09e72ffcbe4..139605d91f7 100644
--- a/contrib/libs/pfr/include/pfr/detail/for_each_field_impl.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/for_each_field_impl.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,11 +9,13 @@
#include <pfr/detail/config.hpp>
-#include <utility> // metaprogramming stuff
-
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/rvalue_t.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <utility> // metaprogramming stuff
+#endif
+
namespace pfr { namespace detail {
template <std::size_t Index>
diff --git a/contrib/libs/pfr/include/pfr/detail/functional.hpp b/contrib/libs/pfr/include/pfr/detail/functional.hpp
index 4d7ce119572..3bca551a7bb 100644
--- a/contrib/libs/pfr/include/pfr/detail/functional.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/functional.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,11 +9,13 @@
#include <pfr/detail/config.hpp>
-#include <functional>
-#include <cstdint>
-
#include <pfr/detail/sequence_tuple.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <cstdint>
+#include <functional>
+#endif
+
namespace pfr { namespace detail {
template <std::size_t I, std::size_t N>
struct equal_impl {
diff --git a/contrib/libs/pfr/include/pfr/detail/io.hpp b/contrib/libs/pfr/include/pfr/detail/io.hpp
index d8b9fb518f7..9cc4a5417a3 100644
--- a/contrib/libs/pfr/include/pfr/detail/io.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/io.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,6 +10,8 @@
#include <pfr/detail/config.hpp>
#include <pfr/detail/sequence_tuple.hpp>
+
+#if !defined(PFR_INTERFACE_UNIT)
#include <iosfwd> // stream operators
#include <iomanip>
@@ -19,6 +21,8 @@
# endif
#endif
+#endif
+
namespace pfr { namespace detail {
inline auto quoted_helper(const std::string& s) noexcept {
diff --git a/contrib/libs/pfr/include/pfr/detail/make_flat_tuple_of_references.hpp b/contrib/libs/pfr/include/pfr/detail/make_flat_tuple_of_references.hpp
index 2fa4b41cb32..4d8f96d5f0e 100644
--- a/contrib/libs/pfr/include/pfr/detail/make_flat_tuple_of_references.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/make_flat_tuple_of_references.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,11 +9,13 @@
#include <pfr/detail/config.hpp>
-#include <utility> // metaprogramming stuff
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/rvalue_t.hpp>
#include <pfr/detail/make_integer_sequence.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <utility> // metaprogramming stuff
+#endif
namespace pfr { namespace detail {
diff --git a/contrib/libs/pfr/include/pfr/detail/make_integer_sequence.hpp b/contrib/libs/pfr/include/pfr/detail/make_integer_sequence.hpp
index 4c6a07c442e..2274cc1a90c 100644
--- a/contrib/libs/pfr/include/pfr/detail/make_integer_sequence.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/make_integer_sequence.hpp
@@ -1,5 +1,5 @@
// Copyright (c) 2018 Sergei Fedorov
-// Copyright (c) 2019-2023 Antony Polukhin
+// Copyright (c) 2019-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,9 +10,11 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits>
#include <utility>
#include <cstddef>
+#endif
namespace pfr { namespace detail {
diff --git a/contrib/libs/pfr/include/pfr/detail/offset_based_getter.hpp b/contrib/libs/pfr/include/pfr/detail/offset_based_getter.hpp
index 38303d1a148..7b32540e9b1 100644
--- a/contrib/libs/pfr/include/pfr/detail/offset_based_getter.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/offset_based_getter.hpp
@@ -1,5 +1,5 @@
// Copyright (c) 2017-2018 Chris Beck
-// Copyright (c) 2019-2023 Antony Polukhin
+// Copyright (c) 2019-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,13 +10,15 @@
#include <pfr/detail/config.hpp>
-#include <type_traits>
-#include <utility>
-#include <memory> // std::addressof
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/rvalue_t.hpp>
#include <pfr/detail/size_t_.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <type_traits>
+#include <utility>
+#include <memory> // std::addressof
+#endif
namespace pfr { namespace detail {
diff --git a/contrib/libs/pfr/include/pfr/detail/possible_reflectable.hpp b/contrib/libs/pfr/include/pfr/detail/possible_reflectable.hpp
index d005677ce03..5b1ddb9afd4 100644
--- a/contrib/libs/pfr/include/pfr/detail/possible_reflectable.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/possible_reflectable.hpp
@@ -10,7 +10,9 @@
#include <pfr/detail/config.hpp>
#include <pfr/traits_fwd.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits> // for std::is_aggregate
+#endif
namespace pfr { namespace detail {
diff --git a/contrib/libs/pfr/include/pfr/detail/rvalue_t.hpp b/contrib/libs/pfr/include/pfr/detail/rvalue_t.hpp
index db9e7c33d2e..b784a18a253 100644
--- a/contrib/libs/pfr/include/pfr/detail/rvalue_t.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/rvalue_t.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,8 +7,10 @@
#define PFR_DETAIL_RVALUE_T_HPP
#pragma once
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits>
#include <utility> // std::enable_if_t
+#endif
// This header provides aliases rvalue_t and lvalue_t.
//
diff --git a/contrib/libs/pfr/include/pfr/detail/sequence_tuple.hpp b/contrib/libs/pfr/include/pfr/detail/sequence_tuple.hpp
index 50b796151a3..9114686e6ac 100644
--- a/contrib/libs/pfr/include/pfr/detail/sequence_tuple.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/sequence_tuple.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,8 +10,10 @@
#include <pfr/detail/config.hpp>
#include <pfr/detail/make_integer_sequence.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
#include <utility> // metaprogramming stuff
#include <cstddef> // std::size_t
+#endif
///////////////////// Tuple that holds its values in the supplied order
namespace pfr { namespace detail { namespace sequence_tuple {
@@ -50,68 +52,68 @@ struct tuple_base<std::index_sequence<> > {
template <std::size_t N, class T>
constexpr T& get_impl(base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <std::size_t N, class T>
constexpr const T& get_impl(const base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <std::size_t N, class T>
constexpr volatile T& get_impl(volatile base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <std::size_t N, class T>
constexpr const volatile T& get_impl(const volatile base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <std::size_t N, class T>
constexpr T&& get_impl(base_from_member<N, T>&& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return std::forward<T>(t.value);
}
template <class T, std::size_t N>
constexpr T& get_by_type_impl(base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <class T, std::size_t N>
constexpr const T& get_by_type_impl(const base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <class T, std::size_t N>
constexpr volatile T& get_by_type_impl(volatile base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <class T, std::size_t N>
constexpr const volatile T& get_by_type_impl(const volatile base_from_member<N, T>& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return t.value;
}
template <class T, std::size_t N>
constexpr T&& get_by_type_impl(base_from_member<N, T>&& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return std::forward<T>(t.value);
}
template <class T, std::size_t N>
constexpr const T&& get_by_type_impl(const base_from_member<N, T>&& t) noexcept {
- // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-core.CallAndMessage)
return std::forward<T>(t.value);
}
diff --git a/contrib/libs/pfr/include/pfr/detail/size_array.hpp b/contrib/libs/pfr/include/pfr/detail/size_array.hpp
index f835e1c3bfe..69be72d5fb1 100644
--- a/contrib/libs/pfr/include/pfr/detail/size_array.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/size_array.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,9 @@
#include <pfr/detail/config.hpp>
-#include <cstddef> // metaprogramming stuff
+#if !defined(PFR_INTERFACE_UNIT)
+#include <cstddef>
+#endif
namespace pfr { namespace detail {
diff --git a/contrib/libs/pfr/include/pfr/detail/size_t_.hpp b/contrib/libs/pfr/include/pfr/detail/size_t_.hpp
index 93896d445e9..3fcb38a585a 100644
--- a/contrib/libs/pfr/include/pfr/detail/size_t_.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/size_t_.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,6 +7,11 @@
#define PFR_DETAIL_SIZE_T_HPP
#pragma once
+#if !defined(PFR_INTERFACE_UNIT)
+#include <type_traits>
+#include <cstddef>
+#endif
+
namespace pfr { namespace detail {
///////////////////// General utility stuff
diff --git a/contrib/libs/pfr/include/pfr/detail/stdarray.hpp b/contrib/libs/pfr/include/pfr/detail/stdarray.hpp
index 1cfa099cf3f..71857891751 100644
--- a/contrib/libs/pfr/include/pfr/detail/stdarray.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/stdarray.hpp
@@ -9,31 +9,31 @@
#include <pfr/detail/config.hpp>
-#include <utility> // metaprogramming stuff
-#include <array>
-#include <type_traits> // for std::common_type_t
-#include <cstddef>
-
#include <pfr/detail/sequence_tuple.hpp>
-namespace pfr { namespace detail {
+#if !defined(PFR_INTERFACE_UNIT)
+#include <array>
+#if PFR_CORE_NAME_ENABLED
+# include <string_view>
+#endif
+#include <utility> // metaprogramming stuff
+#endif
-template <class... Types>
-constexpr auto make_stdarray(const Types&... t) noexcept {
- return std::array<std::common_type_t<Types...>, sizeof...(Types)>{t...};
-}
+namespace pfr { namespace detail {
+#if PFR_CORE_NAME_ENABLED
template <class T, std::size_t... I>
-constexpr auto make_stdarray_from_tietuple(const T& t, std::index_sequence<I...>, int) noexcept {
- return detail::make_stdarray(
+constexpr auto make_stdarray_from_tietuple(const T& t, std::index_sequence<I...>) noexcept {
+ return std::array<std::string_view, sizeof...(I)>{
pfr::detail::sequence_tuple::get<I>(t)...
- );
+ };
}
-
-template <class T>
-constexpr auto make_stdarray_from_tietuple(const T&, std::index_sequence<>, long) noexcept {
- return std::array<std::nullptr_t, 0>{};
+#else
+template <class T, std::size_t... I>
+constexpr auto make_stdarray_from_tietuple(const T&, std::index_sequence<I...>) noexcept {
+ return nullptr;
}
+#endif
}} // namespace pfr::detail
diff --git a/contrib/libs/pfr/include/pfr/detail/stdtuple.hpp b/contrib/libs/pfr/include/pfr/detail/stdtuple.hpp
index 65d2c5222c0..30f4a43448e 100644
--- a/contrib/libs/pfr/include/pfr/detail/stdtuple.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/stdtuple.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,15 +9,18 @@
#include <pfr/detail/config.hpp>
+#include <pfr/detail/sequence_tuple.hpp>
+
+#if !defined(PFR_INTERFACE_UNIT)
#include <utility> // metaprogramming stuff
#include <tuple>
-
-#include <pfr/detail/sequence_tuple.hpp>
+#endif
namespace pfr { namespace detail {
template <class T, std::size_t... I>
-constexpr auto make_stdtuple_from_tietuple(const T& t, std::index_sequence<I...>) noexcept {
+constexpr auto make_stdtuple_from_tietuple(const T& t, std::index_sequence<I...>) {
+ (void)t; // workaround for MSVC 14.1 `warning C4100: 't': unreferenced formal parameter`
return std::make_tuple(
pfr::detail::sequence_tuple::get<I>(t)...
);
@@ -25,6 +28,7 @@ constexpr auto make_stdtuple_from_tietuple(const T& t, std::index_sequence<I...>
template <class T, std::size_t... I>
constexpr auto make_stdtiedtuple_from_tietuple(const T& t, std::index_sequence<I...>) noexcept {
+ (void)t; // workaround for MSVC 14.1 `warning C4100: 't': unreferenced formal parameter`
return std::tie(
pfr::detail::sequence_tuple::get<I>(t)...
);
@@ -32,6 +36,7 @@ constexpr auto make_stdtiedtuple_from_tietuple(const T& t, std::index_sequence<I
template <class T, std::size_t... I>
constexpr auto make_conststdtiedtuple_from_tietuple(const T& t, std::index_sequence<I...>) noexcept {
+ (void)t; // workaround for MSVC 14.1 `warning C4100: 't': unreferenced formal parameter`
return std::tuple<
std::add_lvalue_reference_t<std::add_const_t<
std::remove_reference_t<decltype(pfr::detail::sequence_tuple::get<I>(t))>
diff --git a/contrib/libs/pfr/include/pfr/detail/tie_from_structure_tuple.hpp b/contrib/libs/pfr/include/pfr/detail/tie_from_structure_tuple.hpp
index 03a04703baa..51b7cd382d0 100644
--- a/contrib/libs/pfr/include/pfr/detail/tie_from_structure_tuple.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/tie_from_structure_tuple.hpp
@@ -1,5 +1,5 @@
// Copyright (c) 2018 Adam Butcher, Antony Polukhin
-// Copyright (c) 2019-2023 Antony Polukhin
+// Copyright (c) 2019-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -16,7 +16,9 @@
#include <pfr/tuple_size.hpp>
#include <pfr/detail/make_integer_sequence.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
#include <tuple>
+#endif
namespace pfr { namespace detail {
diff --git a/contrib/libs/pfr/include/pfr/detail/unsafe_declval.hpp b/contrib/libs/pfr/include/pfr/detail/unsafe_declval.hpp
index 1b1a587be1a..6d8bfddbd47 100644
--- a/contrib/libs/pfr/include/pfr/detail/unsafe_declval.hpp
+++ b/contrib/libs/pfr/include/pfr/detail/unsafe_declval.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2019-2023 Antony Polukhin.
+// Copyright (c) 2019-2025 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,9 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits>
+#endif
namespace pfr { namespace detail {
diff --git a/contrib/libs/pfr/include/pfr/functions_for.hpp b/contrib/libs/pfr/include/pfr/functions_for.hpp
index 1d1a13f628e..8a42fd10a27 100644
--- a/contrib/libs/pfr/include/pfr/functions_for.hpp
+++ b/contrib/libs/pfr/include/pfr/functions_for.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,8 +9,10 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
#include <pfr/ops_fields.hpp>
#include <pfr/io_fields.hpp>
+#endif
/// \file pfr/functions_for.hpp
/// Contains PFR_FUNCTIONS_FOR macro that defined comparison and stream operators for T along with hash_value function.
diff --git a/contrib/libs/pfr/include/pfr/functors.hpp b/contrib/libs/pfr/include/pfr/functors.hpp
index 2e49b56b42e..f8bb874a174 100644
--- a/contrib/libs/pfr/include/pfr/functors.hpp
+++ b/contrib/libs/pfr/include/pfr/functors.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,6 +9,8 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#include <pfr/ops.hpp>
#include <pfr/detail/functional.hpp>
@@ -35,6 +37,8 @@
/// \b Synopsis:
namespace pfr {
+PFR_BEGIN_MODULE_EXPORT
+
///////////////////// Comparisons
/// \brief std::equal_to like comparator that returns \forcedlink{eq}(x, y)
@@ -216,6 +220,10 @@ template <class T> struct hash {
}
};
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_FUNCTORS_HPP
diff --git a/contrib/libs/pfr/include/pfr/io.hpp b/contrib/libs/pfr/include/pfr/io.hpp
index a7fe8621aca..5e6ad932889 100644
--- a/contrib/libs/pfr/include/pfr/io.hpp
+++ b/contrib/libs/pfr/include/pfr/io.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,6 +9,8 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#include <pfr/detail/detectors.hpp>
#include <pfr/io_fields.hpp>
@@ -38,25 +40,25 @@ namespace detail {
///////////////////// Helper typedefs
template <class Stream, class Type>
using enable_not_ostreamable_t = std::enable_if_t<
- not_appliable<ostreamable_detector, Stream&, const std::remove_reference_t<Type>&>::value,
+ not_applicable<ostreamable_detector, Stream&, const std::remove_reference_t<Type>&>::value,
Stream&
>;
template <class Stream, class Type>
using enable_not_istreamable_t = std::enable_if_t<
- not_appliable<istreamable_detector, Stream&, Type&>::value,
+ not_applicable<istreamable_detector, Stream&, Type&>::value,
Stream&
>;
template <class Stream, class Type>
using enable_ostreamable_t = std::enable_if_t<
- !not_appliable<ostreamable_detector, Stream&, const std::remove_reference_t<Type>&>::value,
+ !not_applicable<ostreamable_detector, Stream&, const std::remove_reference_t<Type>&>::value,
Stream&
>;
template <class Stream, class Type>
using enable_istreamable_t = std::enable_if_t<
- !not_appliable<istreamable_detector, Stream&, Type&>::value,
+ !not_applicable<istreamable_detector, Stream&, Type&>::value,
Stream&
>;
@@ -67,6 +69,8 @@ struct io_impl {
T value;
};
+PFR_BEGIN_MODULE_EXPORT
+
template <class Char, class Traits, class T>
enable_not_ostreamable_t<std::basic_ostream<Char, Traits>, T> operator<<(std::basic_ostream<Char, Traits>& out, io_impl<T>&& x) {
return out << pfr::io_fields(std::forward<T>(x.value));
@@ -87,8 +91,12 @@ enable_istreamable_t<std::basic_istream<Char, Traits>, T> operator>>(std::basic_
return in >> x.value;
}
+PFR_END_MODULE_EXPORT
+
} // namespace detail
+PFR_BEGIN_MODULE_EXPORT
+
/// IO manipulator to read/write \aggregate `value` using its IO stream operators or using \forcedlink{io_fields} if operators are not available.
///
/// \b Example:
@@ -108,6 +116,10 @@ auto io(T&& value) noexcept {
return detail::io_impl<T>{std::forward<T>(value)};
}
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_IO_HPP
diff --git a/contrib/libs/pfr/include/pfr/io_fields.hpp b/contrib/libs/pfr/include/pfr/io_fields.hpp
index b742640bf33..b7038196dce 100644
--- a/contrib/libs/pfr/include/pfr/io_fields.hpp
+++ b/contrib/libs/pfr/include/pfr/io_fields.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,16 +10,19 @@
#include <pfr/detail/config.hpp>
-#include <pfr/detail/core.hpp>
-
-#include <type_traits>
-#include <utility> // metaprogramming stuff
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+#include <pfr/detail/core.hpp>
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/io.hpp>
#include <pfr/detail/make_integer_sequence.hpp>
#include <pfr/tuple_size.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <type_traits>
+#include <utility> // metaprogramming stuff
+#endif
+
/// \file pfr/io_fields.hpp
/// Contains IO manipulator \forcedlink{io_fields} to read/write any \aggregate field-by-field.
///
@@ -52,6 +55,7 @@ struct io_fields_impl {
T value;
};
+PFR_BEGIN_MODULE_EXPORT
template <class Char, class Traits, class T>
std::basic_ostream<Char, Traits>& operator<<(std::basic_ostream<Char, Traits>& out, io_fields_impl<const T&>&& x) {
@@ -130,8 +134,12 @@ std::basic_istream<Char, Traits>& operator>>(std::basic_istream<Char, Traits>& i
return in;
}
+PFR_END_MODULE_EXPORT
+
} // namespace detail
+PFR_BEGIN_MODULE_EXPORT
+
/// IO manipulator to read/write \aggregate `value` field-by-field.
///
/// \b Example:
@@ -159,6 +167,10 @@ auto io_fields(T&& value) noexcept {
return detail::io_fields_impl<T>{std::forward<T>(value)};
}
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_IO_FIELDS_HPP
diff --git a/contrib/libs/pfr/include/pfr/ops.hpp b/contrib/libs/pfr/include/pfr/ops.hpp
index 24bd8d393e1..643efdaeb4c 100644
--- a/contrib/libs/pfr/include/pfr/ops.hpp
+++ b/contrib/libs/pfr/include/pfr/ops.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,6 +9,8 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#include <pfr/detail/detectors.hpp>
#include <pfr/ops_fields.hpp>
@@ -40,13 +42,13 @@ namespace detail {
///////////////////// Helper typedefs that are used by all the ops
template <template <class, class> class Detector, class T, class U>
using enable_not_comp_base_t = std::enable_if_t<
- not_appliable<Detector, T const&, U const&>::value,
+ not_applicable<Detector, T const&, U const&>::value,
bool
>;
template <template <class, class> class Detector, class T, class U>
using enable_comp_base_t = std::enable_if_t<
- !not_appliable<Detector, T const&, U const&>::value,
+ !not_applicable<Detector, T const&, U const&>::value,
bool
>;
///////////////////// std::enable_if_t like functions that enable only if types do not support operation
@@ -59,7 +61,7 @@ namespace detail {
template <class T, class U> using enable_not_ge_comp_t = enable_not_comp_base_t<comp_ge_detector, T, U>;
template <class T> using enable_not_hashable_t = std::enable_if_t<
- not_appliable<hash_detector, const T&, const T&>::value,
+ not_applicable<hash_detector, const T&, const T&>::value,
std::size_t
>;
///////////////////// std::enable_if_t like functions that enable only if types do support operation
@@ -72,11 +74,12 @@ namespace detail {
template <class T, class U> using enable_ge_comp_t = enable_comp_base_t<comp_ge_detector, T, U>;
template <class T> using enable_hashable_t = std::enable_if_t<
- !not_appliable<hash_detector, const T&, const T&>::value,
+ !not_applicable<hash_detector, const T&, const T&>::value,
std::size_t
>;
} // namespace detail
+PFR_BEGIN_MODULE_EXPORT
/// \brief Compares lhs and rhs for equality using their own comparison and conversion operators; if no operators available returns \forcedlink{eq_fields}(lhs, rhs).
///
@@ -182,6 +185,10 @@ constexpr detail::enable_hashable_t<T> hash_value(const T& value) {
return std::hash<T>{}(value);
}
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_OPS_HPP
diff --git a/contrib/libs/pfr/include/pfr/ops_fields.hpp b/contrib/libs/pfr/include/pfr/ops_fields.hpp
index a851b96b308..cd8cb38ae9e 100644
--- a/contrib/libs/pfr/include/pfr/ops_fields.hpp
+++ b/contrib/libs/pfr/include/pfr/ops_fields.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,6 +9,8 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#include <pfr/core.hpp>
#include <pfr/detail/functional.hpp>
@@ -33,6 +35,8 @@
/// \b Synopsis:
namespace pfr {
+PFR_BEGIN_MODULE_EXPORT
+
/// Does a field-by-field equality comparison.
///
/// \returns `L == R && tuple_size_v<T> == tuple_size_v<U>`, where `L` and
@@ -122,6 +126,11 @@ namespace pfr {
return result;
#endif
}
+
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_OPS_HPP
diff --git a/contrib/libs/pfr/include/pfr/traits.hpp b/contrib/libs/pfr/include/pfr/traits.hpp
index 4e09a81361c..d121da08671 100644
--- a/contrib/libs/pfr/include/pfr/traits.hpp
+++ b/contrib/libs/pfr/include/pfr/traits.hpp
@@ -9,8 +9,13 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#include <pfr/detail/possible_reflectable.hpp>
+
+#if !defined(PFR_INTERFACE_UNIT)
#include <type_traits>
+#endif
/// \file pfr/traits.hpp
/// Contains traits \forcedlink{is_reflectable} and \forcedlink{is_implicitly_reflectable} for detecting an ability to reflect type.
@@ -19,6 +24,8 @@
namespace pfr {
+PFR_BEGIN_MODULE_EXPORT
+
/// Has a static const member variable `value` when it is known that type T can or can't be reflected using Boost.PFR; otherwise, there is no member variable.
/// Every user may (and in some difficult cases - should) specialize is_reflectable on his own.
///
@@ -54,7 +61,11 @@ using is_implicitly_reflectable = std::integral_constant< bool, pfr::detail::pos
template<class T, class WhatFor>
constexpr bool is_implicitly_reflectable_v = is_implicitly_reflectable<T, WhatFor>::value;
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_TRAITS_HPP
diff --git a/contrib/libs/pfr/include/pfr/traits_fwd.hpp b/contrib/libs/pfr/include/pfr/traits_fwd.hpp
index 601a556d4b3..819ad316936 100644
--- a/contrib/libs/pfr/include/pfr/traits_fwd.hpp
+++ b/contrib/libs/pfr/include/pfr/traits_fwd.hpp
@@ -9,13 +9,20 @@
#include <pfr/detail/config.hpp>
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+
namespace pfr {
+PFR_BEGIN_MODULE_EXPORT
+
template<class T, class WhatFor>
struct is_reflectable;
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
-#endif // PFR_DETAIL_TRAITS_FWD_HPP
+#endif // #if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
+#endif // PFR_DETAIL_TRAITS_FWD_HPP
diff --git a/contrib/libs/pfr/include/pfr/tuple_size.hpp b/contrib/libs/pfr/include/pfr/tuple_size.hpp
index fe7b8e44dde..dd1940cec1d 100644
--- a/contrib/libs/pfr/include/pfr/tuple_size.hpp
+++ b/contrib/libs/pfr/include/pfr/tuple_size.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016-2023 Antony Polukhin
+// Copyright (c) 2016-2025 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,18 +10,24 @@
#include <pfr/detail/config.hpp>
-#include <type_traits>
-#include <utility> // metaprogramming stuff
+#if !defined(PFR_USE_MODULES) || defined(PFR_INTERFACE_UNIT)
#include <pfr/detail/sequence_tuple.hpp>
#include <pfr/detail/fields_count.hpp>
+#if !defined(PFR_INTERFACE_UNIT)
+#include <type_traits>
+#include <utility> // metaprogramming stuff
+#endif
+
/// \file pfr/tuple_size.hpp
/// Contains tuple-like interfaces to get fields count \forcedlink{tuple_size}, \forcedlink{tuple_size_v}.
///
/// \b Synopsis:
namespace pfr {
+PFR_BEGIN_MODULE_EXPORT
+
/// Has a static const member variable `value` that contains fields count in a T.
/// Works for any T that satisfies \aggregate.
///
@@ -43,6 +49,10 @@ using tuple_size = detail::size_t_< pfr::detail::fields_count<T>() >;
template <class T>
constexpr std::size_t tuple_size_v = tuple_size<T>::value;
+PFR_END_MODULE_EXPORT
+
} // namespace pfr
+#endif // #if defined(PFR_USE_MODULES) && !defined(PFR_INTERFACE_UNIT)
+
#endif // PFR_TUPLE_SIZE_HPP
diff --git a/contrib/libs/pfr/ya.make b/contrib/libs/pfr/ya.make
index 3d3de788d58..5e665dffe7a 100644
--- a/contrib/libs/pfr/ya.make
+++ b/contrib/libs/pfr/ya.make
@@ -9,9 +9,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(2.2.0)
+VERSION(2.3.2)
-ORIGINAL_SOURCE(https://github.com/apolukhin/pfr_non_boost/archive/2.2.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/apolukhin/pfr_non_boost/archive/2.3.2.tar.gz)
ADDINCL(
GLOBAL contrib/libs/pfr/include