diff --git a/reflect b/reflect index c09c398..58a4ec4 100644 --- a/reflect +++ b/reflect @@ -351,6 +351,9 @@ template requires (std::is_aggregate_v decltype(auto) { return detail::nth_pack_element(REFLECT_FWD(args)...); }, REFLECT_FWD(t)); } +template requires (std::is_aggregate_v and N < size()) +using member_type = std::remove_cvref_t(std::declval()))>; + namespace detail { template inline constexpr bool has_member_name_impl = [](std::index_sequence) { @@ -919,6 +922,15 @@ static_assert(([]>); + static_assert(std::is_same_v>); + static_assert(std::is_same_v>); + } + // has_member_name { struct foo { int bar; };