@@ -52,15 +52,18 @@ struct Cls : NotAMember {
52
52
template <typename T> void TMemFn ();
53
53
54
54
struct Inner { int c; };
55
+
56
+ using Alias = int ;
55
57
};
56
58
57
- static_assert (members_of(^Cls).size() == 12 );
59
+ static_assert (members_of(^Cls).size() == 13 );
58
60
static_assert (nonstatic_data_members_of(^Cls) ==
59
61
std::vector{^Cls::mem1, ^Cls::mem2});
60
62
static_assert (static_data_members_of(^Cls) == std::vector{^Cls::smem});
61
63
static_assert (members_of(^Cls, std::meta::is_constructor).size() == 2 );
62
64
static_assert (members_of(^Cls, std::meta::is_destructor).size() == 1 );
63
- static_assert (members_of(^Cls, std::meta::is_type) == std::vector{^Cls::Inner});
65
+ static_assert (members_of(^Cls, std::meta::is_type) == std::vector{^Cls::Inner,
66
+ ^Cls::Alias});
64
67
static_assert (members_of(^Cls, std::meta::is_template) ==
65
68
std::vector{^Cls::TMemFn});
66
69
static_assert (members_of(^Cls, std::meta::is_function,
@@ -70,6 +73,7 @@ static_assert(members_of(^Cls, std::meta::is_function,
70
73
[](auto R) { return !is_static_member (R) &&
71
74
!is_special_member (R); }) ==
72
75
std::vector{^Cls::memfn1, ^Cls::memfn2});
76
+ static_assert (members_of(^Cls, std::meta::is_alias)[0 ] == ^Cls::Alias);
73
77
74
78
template <typename T>
75
79
struct TCls {
@@ -96,7 +100,7 @@ void usage_example() {
96
100
return members_of (^Cls, std::meta::is_type).size ();
97
101
};
98
102
99
- static_assert (1 == getSz ());
103
+ static_assert (2 == getSz ());
100
104
static_assert (^Cls::Inner == members_of (^Cls, std::meta::is_type)[0 ]);
101
105
102
106
constexpr auto getInnerObj = []() consteval {
0 commit comments