diff options
| author | robot-contrib <[email protected]> | 2025-06-23 12:10:44 +0300 |
|---|---|---|
| committer | robot-contrib <[email protected]> | 2025-06-23 12:47:15 +0300 |
| commit | a731af300f45dd4cb0f3fd3b24c8213fe1425068 (patch) | |
| tree | 036a73c5965bc3068fc1ed97c98a8ab31454d81e | |
| parent | 6aec99621dd3b4db25c97fe17265631e334179c3 (diff) | |
Update contrib/libs/pfr to 2.3.2
commit_hash:8c32fcef195aae61c50da1b5a0ee2f0b1ee45ffd
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: | [](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [](https://ci.appveyor.com/project/apolukhin/pfr/branch/develop) | [](https://coveralls.io/github/apolukhin/magic_get?branch=develop) | [details...](https://www.boost.org/development/tests/develop/developer/pfr.html) -Master: | [](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [](https://ci.appveyor.com/project/apolukhin/pfr/branch/master) | [](https://coveralls.io/github/apolukhin/magic_get?branch=master) | [details...](https://www.boost.org/development/tests/master/developer/pfr.html) +Develop: | [](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [](https://ci.appveyor.com/project/apolukhin/pfr/branch/develop) | [](https://coveralls.io/github/apolukhin/magic_get?branch=develop) | [details...](https://regression.boost.io/develop/developer/pfr.html) +Master: | [](https://github.com/boostorg/pfr/actions/workflows/ci.yml) [](https://ci.appveyor.com/project/apolukhin/pfr/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 |
