15#include <AUI/Reflect/detail/gen.h>
16#include <AUI/Reflect/detail/fields_count.h>
18namespace aui::reflect::detail {
25constexpr auto tie_as_tuple(Clazz& clazz)
noexcept {
27 !std::is_union<Clazz>::value,
28 "====================> aui::reflect: attempt to reflect on a union."
30 typedef std::integral_constant<std::size_t, detail::fields_count<Clazz>()> fieldsCountTag;
31 return detail::tie_as_tuple(clazz, fieldsCountTag{});
34template <
class Clazz,
class F, std::size_t... I>
35constexpr void for_each_field_dispatcher(Clazz& clazz, F&& callback, std::index_sequence<I...>) {
37 !std::is_union<Clazz>::value,
38 "====================> aui::reflect: attempt to reflect on a union."
40 std::forward<F>(callback)(
41 detail::tie_as_tuple(clazz)