@@ -30,19 +30,24 @@ namespace ns {
3030 struct MemberArray {
3131 int array[10 ];
3232 };
33+ struct MemberFunction {
34+ int memfun (int x) { return x + 1 ; }
35+ };
3336}
3437
3538BOOST_HANA_ADAPT_STRUCT (ns::Data0);
3639BOOST_HANA_ADAPT_STRUCT (ns::Data1, member1);
3740BOOST_HANA_ADAPT_STRUCT (ns::Data2, member1, member2);
3841BOOST_HANA_ADAPT_STRUCT (ns::Data3, member1, member2, member3);
3942BOOST_HANA_ADAPT_STRUCT (ns::MemberArray, array);
43+ BOOST_HANA_ADAPT_STRUCT (ns::MemberFunction, memfun);
4044
4145static_assert (hana::Struct<ns::Data0>::value, " " );
4246static_assert (hana::Struct<ns::Data1>::value, " " );
4347static_assert (hana::Struct<ns::Data2>::value, " " );
4448static_assert (hana::Struct<ns::Data3>::value, " " );
4549static_assert (hana::Struct<ns::MemberArray>::value, " " );
50+ static_assert (hana::Struct<ns::MemberFunction>::value, " " );
4651
4752int main () {
4853 BOOST_HANA_CONSTANT_CHECK (hana::contains (ns::Data1{}, BOOST_HANA_STRING (" member1" )));
@@ -55,4 +60,9 @@ int main() {
5560 BOOST_HANA_CONSTANT_CHECK (hana::contains (ns::Data3{}, BOOST_HANA_STRING (" member3" )));
5661
5762 BOOST_HANA_CONSTANT_CHECK (hana::contains (ns::MemberArray{}, BOOST_HANA_STRING (" array" )));
63+
64+ BOOST_HANA_CONSTANT_CHECK (hana::contains (ns::MemberFunction{}, BOOST_HANA_STRING (" memfun" )));
65+
66+ constexpr auto accessors = hana::accessors<ns::MemberFunction>();
67+ BOOST_HANA_RUNTIME_CHECK (hana::second (accessors[hana::size_c<0 >])(ns::MemberFunction{})(1 ) == 2 );
5868}
0 commit comments