X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2Ftype_traits.test.cc;h=0040416648244cc299b7a7ec0f05591abb371ead;hb=c92498e86ff9f107be25e9cf159c38f7122dbfc7;hp=fc3d8286de3d969c1cabccb9d9d939561b51ad5d;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Utils/type_traits.test.cc b/senf/Utils/type_traits.test.cc index fc3d828..0040416 100644 --- a/senf/Utils/type_traits.test.cc +++ b/senf/Utils/type_traits.test.cc @@ -31,17 +31,17 @@ #include #include "type_traits.hh" -#include "../Utils/auto_unit_test.hh" +#include #include #define prefix_ ///////////////////////////////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////////////////////////////////////////