Utils/Console: Special utility type documentation
[senf.git] / senf / Utils / type_traits.test.cc
index fc3d828..9b1c3ab 100644 (file)
@@ -31,7 +31,7 @@
 #include <boost/type_traits/is_same.hpp>
 #include "type_traits.hh"
 
-#include "../Utils/auto_unit_test.hh"
+#include <senf/Utils/auto_unit_test.hh>
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
@@ -103,6 +103,18 @@ BOOST_AUTO_UNIT_TEST(typeTraits)
         senf::remove_cvref<int const &>::type,
         int
     >::value ));
+
+    BOOST_STATIC_ASSERT(( senf::function_arity<void ()>::value == 0 ));
+    BOOST_STATIC_ASSERT(( senf::function_arity<void (int,int)>::value == 2 ));
+    BOOST_STATIC_ASSERT(( senf::function_arity<void (*)()>::value == 0 ));
+    BOOST_STATIC_ASSERT(( senf::function_arity<void (*)(int,int)>::value == 2 ));
+    BOOST_STATIC_ASSERT(( senf::function_arity<void (Class::*)()>::value == 0 ));
+    BOOST_STATIC_ASSERT(( senf::function_arity<void (Class::*)(int,int)>::value == 2 ));
+
+    BOOST_STATIC_ASSERT(( senf::function_arity<void (Class::*)(int)>::value == 1 ));
+
+    BOOST_STATIC_ASSERT((   senf::is_pair< std::pair<int,void*> >::value ));
+    BOOST_STATIC_ASSERT(( ! senf::is_pair< void () >::value ));
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////