X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2Ftype_traits.test.cc;h=0040416648244cc299b7a7ec0f05591abb371ead;hb=3a0e403d889f8a16d78d50bbcd7a0f0157b05313;hp=fb9fe5f2e60aa92da643f12d1f1d130a17918cae;hpb=2d88e6b3f5a6f3906e42264f58859e6bf9c12dae;p=senf.git diff --git a/senf/Utils/type_traits.test.cc b/senf/Utils/type_traits.test.cc index fb9fe5f..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,6 +121,7 @@ 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< @@ -110,6 +135,11 @@ BOOST_AUTO_UNIT_TEST(typeTraits) 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////////////////////////////////////////