X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2Ftype_traits.test.cc;h=90ad1c5e51b4cd5a63cbfa5619275ee5e047987f;hb=93d9568d448749dc187e7622b733a4a3caa319df;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..90ad1c5 100644 --- a/senf/Utils/type_traits.test.cc +++ b/senf/Utils/type_traits.test.cc @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2008 +// Copyright (C) 2008 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -31,23 +31,23 @@ #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; - BOOST_STATIC_ASSERT(( boost::is_same< - senf::function_traits_remove_arg< traits >::type, - boost::function_traits + BOOST_STATIC_ASSERT(( boost::is_same< + senf::function_traits_remove_arg< traits >::type, + boost::function_traits >::value )); BOOST_STATIC_ASSERT(( boost::is_same< @@ -59,12 +59,36 @@ BOOST_AUTO_UNIT_TEST(typeTraits) void >::value )); - BOOST_STATIC_ASSERT(( boost::is_same< - senf::remove_member_pointer< int (Class::*) >::type, - int + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_member_pointer< Class (Class::*) >::type, + Class + >::value )); + BOOST_STATIC_ASSERT(( boost::is_same< + 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< void (Class::*)(int) >::type, + 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 )); @@ -77,12 +101,12 @@ BOOST_AUTO_UNIT_TEST(typeTraits) void >::value )); - BOOST_STATIC_ASSERT(( boost::is_same< - senf::remove_any_pointer< int (Class::*) >::type, + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_any_pointer< int (Class::*) >::type, int >::value )); - BOOST_STATIC_ASSERT(( boost::is_same< - senf::remove_any_pointer< void (Class::*)(int) >::type, + BOOST_STATIC_ASSERT(( boost::is_same< + senf::remove_any_pointer< void (Class::*)(int) >::type, void (int) >::value )); BOOST_STATIC_ASSERT(( boost::is_same< @@ -97,15 +121,30 @@ 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 )); + + BOOST_CHECK( true ); } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_