AUI Framework  master
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
gen.h
    1/*
    2 * AUI Framework - Declarative UI toolkit for modern C++20
    3 * Copyright (C) 2020-2025 Alex2772 and Contributors
    4 *
    5 * SPDX-License-Identifier: MPL-2.0
    6 *
    7 * This Source Code Form is subject to the terms of the Mozilla Public
    8 * License, v. 2.0. If a copy of the MPL was not distributed with this
    9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   10 */
   11
   12// based on the ideas found in boost.pfr.
   13// credits: Antony Polukhin, Denis Mikhailov
   14
   20
   21#pragma once
   22
   23#include <tuple>
   24#include <type_traits>
   25
   26namespace aui::reflect::detail {
   27
   28template <class... Args>
   29constexpr auto make_tuple_of_references(Args&&... args) noexcept {
   30    return std::tuple<Args&...>(args...);
   31}
   32
   33template<typename T, typename Arg>
   34constexpr decltype(auto) add_cv(Arg& arg) noexcept {
   35    if constexpr (std::is_const<T>::value && std::is_volatile<T>::value) {
   36        return const_cast<const volatile Arg&>(arg);
   37    }
   38    else if constexpr (std::is_const<T>::value) {
   39        return const_cast<const Arg&>(arg);
   40    }
   41    else if constexpr (std::is_volatile<T>::value) {
   42        return const_cast<volatile Arg&>(arg);
   43    }
   44    else {
   45        return const_cast<Arg&>(arg);
   46    }
   47}
   48
   49// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78939
   50template<typename T, typename Sb, typename Arg>
   51constexpr decltype(auto) workaround_cast(Arg& arg) noexcept {
   52    using output_arg_t = std::conditional_t<!std::is_reference<Sb>(), decltype(detail::add_cv<T>(arg)), Sb>;
   53    return const_cast<output_arg_t>(arg);
   54}
   55
   56template<class Clazz>
   57constexpr auto tie_as_tuple(Clazz& /* clazz */, std::integral_constant<std::size_t, 0>) noexcept {
   58  return std::tuple<>{};
   59}
   60
   61template <class Clazz>
   62constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 1>, std::enable_if_t<std::is_class< std::remove_cv_t<Clazz> >::value>* = nullptr) noexcept {
   63  auto& [a] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
   64  return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(a)>(a));
   65}
   66
   67
   68template <class Clazz>
   69constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 1>, std::enable_if_t<!std::is_class< std::remove_cv_t<Clazz> >::value>* = nullptr) noexcept {
   70  return detail::make_tuple_of_references(clazz);
   71}
   72
   73template<typename Clazz>
   74constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 1>) noexcept {
   75    auto& [
   76    f0
   77    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
   78    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0));
   79}
   80template<typename Clazz>
   81constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 2>) noexcept {
   82    auto& [
   83    f0, f1
   84    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
   85    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1));
   86}
   87template<typename Clazz>
   88constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 3>) noexcept {
   89    auto& [
   90    f0, f1, f2
   91    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
   92    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2));
   93}
   94template<typename Clazz>
   95constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 4>) noexcept {
   96    auto& [
   97    f0, f1, f2, f3
   98    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
   99    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3));
  100}
  101template<typename Clazz>
  102constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 5>) noexcept {
  103    auto& [
  104    f0, f1, f2, f3, f4
  105    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  106    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4));
  107}
  108template<typename Clazz>
  109constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 6>) noexcept {
  110    auto& [
  111    f0, f1, f2, f3, f4, f5
  112    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  113    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5));
  114}
  115template<typename Clazz>
  116constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 7>) noexcept {
  117    auto& [
  118    f0, f1, f2, f3, f4, f5, f6
  119    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  120    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6));
  121}
  122template<typename Clazz>
  123constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 8>) noexcept {
  124    auto& [
  125    f0, f1, f2, f3, f4, f5, f6, f7
  126    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  127    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7));
  128}
  129template<typename Clazz>
  130constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 9>) noexcept {
  131    auto& [
  132    f0, f1, f2, f3, f4, f5, f6, f7, f8
  133    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  134    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8));
  135}
  136template<typename Clazz>
  137constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 10>) noexcept {
  138    auto& [
  139    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9
  140    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  141    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9));
  142}
  143template<typename Clazz>
  144constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 11>) noexcept {
  145    auto& [
  146    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10
  147    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  148    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10));
  149}
  150template<typename Clazz>
  151constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 12>) noexcept {
  152    auto& [
  153    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11
  154    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  155    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11));
  156}
  157template<typename Clazz>
  158constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 13>) noexcept {
  159    auto& [
  160    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12
  161    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  162    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12));
  163}
  164template<typename Clazz>
  165constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 14>) noexcept {
  166    auto& [
  167    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13
  168    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  169    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13));
  170}
  171template<typename Clazz>
  172constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 15>) noexcept {
  173    auto& [
  174    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14
  175    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  176    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14));
  177}
  178template<typename Clazz>
  179constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 16>) noexcept {
  180    auto& [
  181    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15
  182    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  183    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15));
  184}
  185template<typename Clazz>
  186constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 17>) noexcept {
  187    auto& [
  188    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16
  189    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  190    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16));
  191}
  192template<typename Clazz>
  193constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 18>) noexcept {
  194    auto& [
  195    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17
  196    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  197    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17));
  198}
  199template<typename Clazz>
  200constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 19>) noexcept {
  201    auto& [
  202    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18
  203    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  204    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18));
  205}
  206template<typename Clazz>
  207constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 20>) noexcept {
  208    auto& [
  209    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19
  210    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  211    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19));
  212}
  213template<typename Clazz>
  214constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 21>) noexcept {
  215    auto& [
  216    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20
  217    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  218    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20));
  219}
  220template<typename Clazz>
  221constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 22>) noexcept {
  222    auto& [
  223    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21
  224    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  225    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21));
  226}
  227template<typename Clazz>
  228constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 23>) noexcept {
  229    auto& [
  230    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22
  231    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  232    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22));
  233}
  234template<typename Clazz>
  235constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 24>) noexcept {
  236    auto& [
  237    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23
  238    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  239    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23));
  240}
  241template<typename Clazz>
  242constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 25>) noexcept {
  243    auto& [
  244    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24
  245    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  246    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24));
  247}
  248template<typename Clazz>
  249constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 26>) noexcept {
  250    auto& [
  251    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25
  252    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  253    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25));
  254}
  255template<typename Clazz>
  256constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 27>) noexcept {
  257    auto& [
  258    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26
  259    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  260    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26));
  261}
  262template<typename Clazz>
  263constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 28>) noexcept {
  264    auto& [
  265    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27
  266    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  267    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27));
  268}
  269template<typename Clazz>
  270constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 29>) noexcept {
  271    auto& [
  272    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28
  273    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  274    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28));
  275}
  276template<typename Clazz>
  277constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 30>) noexcept {
  278    auto& [
  279    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29
  280    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  281    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29));
  282}
  283template<typename Clazz>
  284constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 31>) noexcept {
  285    auto& [
  286    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30
  287    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  288    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30));
  289}
  290template<typename Clazz>
  291constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 32>) noexcept {
  292    auto& [
  293    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31
  294    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  295    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31));
  296}
  297template<typename Clazz>
  298constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 33>) noexcept {
  299    auto& [
  300    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32
  301    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  302    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32));
  303}
  304template<typename Clazz>
  305constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 34>) noexcept {
  306    auto& [
  307    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33
  308    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  309    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33));
  310}
  311template<typename Clazz>
  312constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 35>) noexcept {
  313    auto& [
  314    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34
  315    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  316    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34));
  317}
  318template<typename Clazz>
  319constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 36>) noexcept {
  320    auto& [
  321    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35
  322    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  323    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35));
  324}
  325template<typename Clazz>
  326constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 37>) noexcept {
  327    auto& [
  328    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36
  329    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  330    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36));
  331}
  332template<typename Clazz>
  333constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 38>) noexcept {
  334    auto& [
  335    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37
  336    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  337    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37));
  338}
  339template<typename Clazz>
  340constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 39>) noexcept {
  341    auto& [
  342    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38
  343    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  344    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38));
  345}
  346template<typename Clazz>
  347constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 40>) noexcept {
  348    auto& [
  349    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39
  350    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  351    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39));
  352}
  353template<typename Clazz>
  354constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 41>) noexcept {
  355    auto& [
  356    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40
  357    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  358    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40));
  359}
  360template<typename Clazz>
  361constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 42>) noexcept {
  362    auto& [
  363    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41
  364    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  365    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41));
  366}
  367template<typename Clazz>
  368constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 43>) noexcept {
  369    auto& [
  370    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42
  371    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  372    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42));
  373}
  374template<typename Clazz>
  375constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 44>) noexcept {
  376    auto& [
  377    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43
  378    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  379    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43));
  380}
  381template<typename Clazz>
  382constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 45>) noexcept {
  383    auto& [
  384    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44
  385    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  386    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44));
  387}
  388template<typename Clazz>
  389constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 46>) noexcept {
  390    auto& [
  391    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45
  392    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  393    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45));
  394}
  395template<typename Clazz>
  396constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 47>) noexcept {
  397    auto& [
  398    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46
  399    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  400    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46));
  401}
  402template<typename Clazz>
  403constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 48>) noexcept {
  404    auto& [
  405    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47
  406    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  407    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47));
  408}
  409template<typename Clazz>
  410constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 49>) noexcept {
  411    auto& [
  412    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48
  413    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  414    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48));
  415}
  416template<typename Clazz>
  417constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 50>) noexcept {
  418    auto& [
  419    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49
  420    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  421    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49));
  422}
  423template<typename Clazz>
  424constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 51>) noexcept {
  425    auto& [
  426    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50
  427    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  428    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50));
  429}
  430template<typename Clazz>
  431constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 52>) noexcept {
  432    auto& [
  433    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51
  434    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  435    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51));
  436}
  437template<typename Clazz>
  438constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 53>) noexcept {
  439    auto& [
  440    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52
  441    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  442    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52));
  443}
  444template<typename Clazz>
  445constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 54>) noexcept {
  446    auto& [
  447    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53
  448    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  449    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53));
  450}
  451template<typename Clazz>
  452constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 55>) noexcept {
  453    auto& [
  454    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54
  455    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  456    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54));
  457}
  458template<typename Clazz>
  459constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 56>) noexcept {
  460    auto& [
  461    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55
  462    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  463    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55));
  464}
  465template<typename Clazz>
  466constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 57>) noexcept {
  467    auto& [
  468    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56
  469    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  470    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56));
  471}
  472template<typename Clazz>
  473constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 58>) noexcept {
  474    auto& [
  475    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57
  476    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  477    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57));
  478}
  479template<typename Clazz>
  480constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 59>) noexcept {
  481    auto& [
  482    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58
  483    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  484    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58));
  485}
  486template<typename Clazz>
  487constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 60>) noexcept {
  488    auto& [
  489    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59
  490    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  491    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59));
  492}
  493template<typename Clazz>
  494constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 61>) noexcept {
  495    auto& [
  496    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60
  497    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  498    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60));
  499}
  500template<typename Clazz>
  501constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 62>) noexcept {
  502    auto& [
  503    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61
  504    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  505    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61));
  506}
  507template<typename Clazz>
  508constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 63>) noexcept {
  509    auto& [
  510    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62
  511    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  512    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62));
  513}
  514template<typename Clazz>
  515constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 64>) noexcept {
  516    auto& [
  517    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63
  518    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  519    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63));
  520}
  521template<typename Clazz>
  522constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 65>) noexcept {
  523    auto& [
  524    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64
  525    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  526    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64));
  527}
  528template<typename Clazz>
  529constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 66>) noexcept {
  530    auto& [
  531    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65
  532    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  533    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65));
  534}
  535template<typename Clazz>
  536constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 67>) noexcept {
  537    auto& [
  538    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66
  539    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  540    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66));
  541}
  542template<typename Clazz>
  543constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 68>) noexcept {
  544    auto& [
  545    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67
  546    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  547    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67));
  548}
  549template<typename Clazz>
  550constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 69>) noexcept {
  551    auto& [
  552    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68
  553    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  554    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68));
  555}
  556template<typename Clazz>
  557constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 70>) noexcept {
  558    auto& [
  559    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69
  560    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  561    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69));
  562}
  563template<typename Clazz>
  564constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 71>) noexcept {
  565    auto& [
  566    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70
  567    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  568    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70));
  569}
  570template<typename Clazz>
  571constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 72>) noexcept {
  572    auto& [
  573    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71
  574    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  575    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71));
  576}
  577template<typename Clazz>
  578constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 73>) noexcept {
  579    auto& [
  580    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72
  581    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  582    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72));
  583}
  584template<typename Clazz>
  585constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 74>) noexcept {
  586    auto& [
  587    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73
  588    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  589    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73));
  590}
  591template<typename Clazz>
  592constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 75>) noexcept {
  593    auto& [
  594    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74
  595    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  596    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74));
  597}
  598template<typename Clazz>
  599constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 76>) noexcept {
  600    auto& [
  601    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75
  602    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  603    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75));
  604}
  605template<typename Clazz>
  606constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 77>) noexcept {
  607    auto& [
  608    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76
  609    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  610    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76));
  611}
  612template<typename Clazz>
  613constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 78>) noexcept {
  614    auto& [
  615    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77
  616    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  617    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77));
  618}
  619template<typename Clazz>
  620constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 79>) noexcept {
  621    auto& [
  622    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78
  623    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  624    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78));
  625}
  626template<typename Clazz>
  627constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 80>) noexcept {
  628    auto& [
  629    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79
  630    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  631    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79));
  632}
  633template<typename Clazz>
  634constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 81>) noexcept {
  635    auto& [
  636    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80
  637    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  638    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80));
  639}
  640template<typename Clazz>
  641constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 82>) noexcept {
  642    auto& [
  643    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81
  644    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  645    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81));
  646}
  647template<typename Clazz>
  648constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 83>) noexcept {
  649    auto& [
  650    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82
  651    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  652    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82));
  653}
  654template<typename Clazz>
  655constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 84>) noexcept {
  656    auto& [
  657    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83
  658    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  659    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83));
  660}
  661template<typename Clazz>
  662constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 85>) noexcept {
  663    auto& [
  664    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84
  665    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  666    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84));
  667}
  668template<typename Clazz>
  669constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 86>) noexcept {
  670    auto& [
  671    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85
  672    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  673    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85));
  674}
  675template<typename Clazz>
  676constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 87>) noexcept {
  677    auto& [
  678    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86
  679    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  680    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86));
  681}
  682template<typename Clazz>
  683constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 88>) noexcept {
  684    auto& [
  685    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87
  686    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  687    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87));
  688}
  689template<typename Clazz>
  690constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 89>) noexcept {
  691    auto& [
  692    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88
  693    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  694    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88));
  695}
  696template<typename Clazz>
  697constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 90>) noexcept {
  698    auto& [
  699    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89
  700    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  701    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89));
  702}
  703template<typename Clazz>
  704constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 91>) noexcept {
  705    auto& [
  706    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90
  707    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  708    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90));
  709}
  710template<typename Clazz>
  711constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 92>) noexcept {
  712    auto& [
  713    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91
  714    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  715    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91));
  716}
  717template<typename Clazz>
  718constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 93>) noexcept {
  719    auto& [
  720    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91, f92
  721    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  722    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91), detail::workaround_cast<Clazz, decltype(f92)>(f92));
  723}
  724template<typename Clazz>
  725constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 94>) noexcept {
  726    auto& [
  727    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91, f92, f93
  728    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  729    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91), detail::workaround_cast<Clazz, decltype(f92)>(f92), detail::workaround_cast<Clazz, decltype(f93)>(f93));
  730}
  731template<typename Clazz>
  732constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 95>) noexcept {
  733    auto& [
  734    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91, f92, f93, f94
  735    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  736    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91), detail::workaround_cast<Clazz, decltype(f92)>(f92), detail::workaround_cast<Clazz, decltype(f93)>(f93), detail::workaround_cast<Clazz, decltype(f94)>(f94));
  737}
  738template<typename Clazz>
  739constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 96>) noexcept {
  740    auto& [
  741    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91, f92, f93, f94, f95
  742    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  743    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91), detail::workaround_cast<Clazz, decltype(f92)>(f92), detail::workaround_cast<Clazz, decltype(f93)>(f93), detail::workaround_cast<Clazz, decltype(f94)>(f94), detail::workaround_cast<Clazz, decltype(f95)>(f95));
  744}
  745template<typename Clazz>
  746constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 97>) noexcept {
  747    auto& [
  748    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91, f92, f93, f94, f95, f96
  749    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  750    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91), detail::workaround_cast<Clazz, decltype(f92)>(f92), detail::workaround_cast<Clazz, decltype(f93)>(f93), detail::workaround_cast<Clazz, decltype(f94)>(f94), detail::workaround_cast<Clazz, decltype(f95)>(f95), detail::workaround_cast<Clazz, decltype(f96)>(f96));
  751}
  752template<typename Clazz>
  753constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 98>) noexcept {
  754    auto& [
  755    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91, f92, f93, f94, f95, f96, f97
  756    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  757    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91), detail::workaround_cast<Clazz, decltype(f92)>(f92), detail::workaround_cast<Clazz, decltype(f93)>(f93), detail::workaround_cast<Clazz, decltype(f94)>(f94), detail::workaround_cast<Clazz, decltype(f95)>(f95), detail::workaround_cast<Clazz, decltype(f96)>(f96), detail::workaround_cast<Clazz, decltype(f97)>(f97));
  758}
  759template<typename Clazz>
  760constexpr auto tie_as_tuple(Clazz& clazz, std::integral_constant<std::size_t, 99>) noexcept {
  761    auto& [
  762    f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, f90, f91, f92, f93, f94, f95, f96, f97, f98
  763    ] = const_cast<std::remove_cv_t<Clazz>&>(clazz); // ====================> aui::reflect: Clazz is not a SimpleAggregate.
  764    return detail::make_tuple_of_references(detail::workaround_cast<Clazz, decltype(f0)>(f0), detail::workaround_cast<Clazz, decltype(f1)>(f1), detail::workaround_cast<Clazz, decltype(f2)>(f2), detail::workaround_cast<Clazz, decltype(f3)>(f3), detail::workaround_cast<Clazz, decltype(f4)>(f4), detail::workaround_cast<Clazz, decltype(f5)>(f5), detail::workaround_cast<Clazz, decltype(f6)>(f6), detail::workaround_cast<Clazz, decltype(f7)>(f7), detail::workaround_cast<Clazz, decltype(f8)>(f8), detail::workaround_cast<Clazz, decltype(f9)>(f9), detail::workaround_cast<Clazz, decltype(f10)>(f10), detail::workaround_cast<Clazz, decltype(f11)>(f11), detail::workaround_cast<Clazz, decltype(f12)>(f12), detail::workaround_cast<Clazz, decltype(f13)>(f13), detail::workaround_cast<Clazz, decltype(f14)>(f14), detail::workaround_cast<Clazz, decltype(f15)>(f15), detail::workaround_cast<Clazz, decltype(f16)>(f16), detail::workaround_cast<Clazz, decltype(f17)>(f17), detail::workaround_cast<Clazz, decltype(f18)>(f18), detail::workaround_cast<Clazz, decltype(f19)>(f19), detail::workaround_cast<Clazz, decltype(f20)>(f20), detail::workaround_cast<Clazz, decltype(f21)>(f21), detail::workaround_cast<Clazz, decltype(f22)>(f22), detail::workaround_cast<Clazz, decltype(f23)>(f23), detail::workaround_cast<Clazz, decltype(f24)>(f24), detail::workaround_cast<Clazz, decltype(f25)>(f25), detail::workaround_cast<Clazz, decltype(f26)>(f26), detail::workaround_cast<Clazz, decltype(f27)>(f27), detail::workaround_cast<Clazz, decltype(f28)>(f28), detail::workaround_cast<Clazz, decltype(f29)>(f29), detail::workaround_cast<Clazz, decltype(f30)>(f30), detail::workaround_cast<Clazz, decltype(f31)>(f31), detail::workaround_cast<Clazz, decltype(f32)>(f32), detail::workaround_cast<Clazz, decltype(f33)>(f33), detail::workaround_cast<Clazz, decltype(f34)>(f34), detail::workaround_cast<Clazz, decltype(f35)>(f35), detail::workaround_cast<Clazz, decltype(f36)>(f36), detail::workaround_cast<Clazz, decltype(f37)>(f37), detail::workaround_cast<Clazz, decltype(f38)>(f38), detail::workaround_cast<Clazz, decltype(f39)>(f39), detail::workaround_cast<Clazz, decltype(f40)>(f40), detail::workaround_cast<Clazz, decltype(f41)>(f41), detail::workaround_cast<Clazz, decltype(f42)>(f42), detail::workaround_cast<Clazz, decltype(f43)>(f43), detail::workaround_cast<Clazz, decltype(f44)>(f44), detail::workaround_cast<Clazz, decltype(f45)>(f45), detail::workaround_cast<Clazz, decltype(f46)>(f46), detail::workaround_cast<Clazz, decltype(f47)>(f47), detail::workaround_cast<Clazz, decltype(f48)>(f48), detail::workaround_cast<Clazz, decltype(f49)>(f49), detail::workaround_cast<Clazz, decltype(f50)>(f50), detail::workaround_cast<Clazz, decltype(f51)>(f51), detail::workaround_cast<Clazz, decltype(f52)>(f52), detail::workaround_cast<Clazz, decltype(f53)>(f53), detail::workaround_cast<Clazz, decltype(f54)>(f54), detail::workaround_cast<Clazz, decltype(f55)>(f55), detail::workaround_cast<Clazz, decltype(f56)>(f56), detail::workaround_cast<Clazz, decltype(f57)>(f57), detail::workaround_cast<Clazz, decltype(f58)>(f58), detail::workaround_cast<Clazz, decltype(f59)>(f59), detail::workaround_cast<Clazz, decltype(f60)>(f60), detail::workaround_cast<Clazz, decltype(f61)>(f61), detail::workaround_cast<Clazz, decltype(f62)>(f62), detail::workaround_cast<Clazz, decltype(f63)>(f63), detail::workaround_cast<Clazz, decltype(f64)>(f64), detail::workaround_cast<Clazz, decltype(f65)>(f65), detail::workaround_cast<Clazz, decltype(f66)>(f66), detail::workaround_cast<Clazz, decltype(f67)>(f67), detail::workaround_cast<Clazz, decltype(f68)>(f68), detail::workaround_cast<Clazz, decltype(f69)>(f69), detail::workaround_cast<Clazz, decltype(f70)>(f70), detail::workaround_cast<Clazz, decltype(f71)>(f71), detail::workaround_cast<Clazz, decltype(f72)>(f72), detail::workaround_cast<Clazz, decltype(f73)>(f73), detail::workaround_cast<Clazz, decltype(f74)>(f74), detail::workaround_cast<Clazz, decltype(f75)>(f75), detail::workaround_cast<Clazz, decltype(f76)>(f76), detail::workaround_cast<Clazz, decltype(f77)>(f77), detail::workaround_cast<Clazz, decltype(f78)>(f78), detail::workaround_cast<Clazz, decltype(f79)>(f79), detail::workaround_cast<Clazz, decltype(f80)>(f80), detail::workaround_cast<Clazz, decltype(f81)>(f81), detail::workaround_cast<Clazz, decltype(f82)>(f82), detail::workaround_cast<Clazz, decltype(f83)>(f83), detail::workaround_cast<Clazz, decltype(f84)>(f84), detail::workaround_cast<Clazz, decltype(f85)>(f85), detail::workaround_cast<Clazz, decltype(f86)>(f86), detail::workaround_cast<Clazz, decltype(f87)>(f87), detail::workaround_cast<Clazz, decltype(f88)>(f88), detail::workaround_cast<Clazz, decltype(f89)>(f89), detail::workaround_cast<Clazz, decltype(f90)>(f90), detail::workaround_cast<Clazz, decltype(f91)>(f91), detail::workaround_cast<Clazz, decltype(f92)>(f92), detail::workaround_cast<Clazz, decltype(f93)>(f93), detail::workaround_cast<Clazz, decltype(f94)>(f94), detail::workaround_cast<Clazz, decltype(f95)>(f95), detail::workaround_cast<Clazz, decltype(f96)>(f96), detail::workaround_cast<Clazz, decltype(f97)>(f97), detail::workaround_cast<Clazz, decltype(f98)>(f98));
  765}
  766
  767template <class Clazz, std::size_t I>
  768constexpr void tie_as_tuple(Clazz& /* clazz */, std::integral_constant<std::size_t, I>) noexcept {
  769  static_assert(sizeof(Clazz) && false,
  770                "====================> aui::reflect: too many fields in a structure Clazz. Please regenerate aui.core/src/AUI/Reflect/detail/gen.h for an appropriate count of fields.");
  771}
  772
  773} // namespace aui::reflect::detail
API_AUI_CORE const ACommandLineArgs & args() noexcept