X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2Ftype_traits.test.cc;h=0040416648244cc299b7a7ec0f05591abb371ead;hb=6019c18e7b74d3e91293f35df660a80346ef7a1e;hp=c4461579c1e67f157e692fc61fedc14bd7f930de;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Utils/type_traits.test.cc b/senf/Utils/type_traits.test.cc index c446157..0040416 100644 --- a/senf/Utils/type_traits.test.cc +++ b/senf/Utils/type_traits.test.cc @@ -38,10 +38,10 @@ ///////////////////////////////cc.p//////////////////////////////////////// namespace { - struct Class {}; + struct Class; } -BOOST_AUTO_UNIT_TEST(typeTraits) +SENF_AUTO_UNIT_TEST(typeTraits) { typedef boost::function_traits traits; @@ -60,11 +60,35 @@ BOOST_AUTO_UNIT_TEST(typeTraits) >::value )); BOOST_STATIC_ASSERT(( boost::is_same< - senf::remove_member_pointer< int (Class::*) >::type, - int + senf::remove_member_pointer< Class (Class::*) >::type, + Class >::value )); BOOST_STATIC_ASSERT(( boost::is_same< - senf::remove_member_pointer< void (Class::*)(int) >::type, + senf::remove_member_pointer< Class const (Class::*) >::type, + Class const + >::value )); + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_member_pointer< Class (Class::*)(int) >::type, + Class (int) + >::value )); + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_member_pointer< Class const (Class::*)(int) >::type, + Class const (int) + >::value )); + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_member_pointer< void (Class::*)(int) const>::type, + void (int) + >::value )); + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_member_pointer< Class const (Class::*)(int) const>::type, + Class const (int) + >::value )); + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_member_pointer< void (Class::* const)(int)>::type, + void (int) + >::value )); + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_member_pointer< void (Class::* const)(int) const>::type, void (int) >::value )); @@ -97,12 +121,25 @@ BOOST_AUTO_UNIT_TEST(typeTraits) BOOST_STATIC_ASSERT(( senf::is_any_function< void () >::value )); BOOST_STATIC_ASSERT(( senf::is_any_function< void (*)(int) >::value )); BOOST_STATIC_ASSERT(( senf::is_any_function< void (Class::*)() >::value )); + BOOST_STATIC_ASSERT(( senf::is_any_function< void (Class::*)() const >::value )); BOOST_STATIC_ASSERT(( ! senf::is_any_function< int * >::value )); BOOST_STATIC_ASSERT(( boost::is_same< senf::remove_cvref::type, int >::value )); + + BOOST_STATIC_ASSERT(( senf::function_arity::value == 0 )); + BOOST_STATIC_ASSERT(( senf::function_arity::value == 2 )); + BOOST_STATIC_ASSERT(( senf::function_arity::value == 0 )); + BOOST_STATIC_ASSERT(( senf::function_arity::value == 2 )); + BOOST_STATIC_ASSERT(( senf::function_arity::value == 0 )); + BOOST_STATIC_ASSERT(( senf::function_arity::value == 2 )); + + BOOST_STATIC_ASSERT(( senf::function_arity::value == 1 )); + + BOOST_STATIC_ASSERT(( senf::is_pair< std::pair >::value )); + BOOST_STATIC_ASSERT(( ! senf::is_pair< void () >::value )); } ///////////////////////////////cc.e////////////////////////////////////////