00001 #include "type-traits.h" 00002 #include "test.h" 00003 00004 #ifdef RUN_SELF_TESTS 00005 00006 namespace ns3 { 00007 00008 class TypeTraitsTest : public Test 00009 { 00010 public: 00011 TypeTraitsTest (); 00012 virtual bool RunTests (void); 00013 }; 00014 00015 TypeTraitsTest::TypeTraitsTest () 00016 : Test ("TypeTraits") 00017 {} 00018 bool 00019 TypeTraitsTest::RunTests (void) 00020 { 00021 bool result = true; 00022 00023 //TypeTraits<int &>::ReferencedType ir; 00024 //TypeTraits<const int>::NonConstType uci; 00025 NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void)>::IsPointerToMember, 1); 00026 NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void) const>::IsPointerToMember, 1); 00027 NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int)>::IsPointerToMember, 1); 00028 NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int) const>::IsPointerToMember, 1); 00029 NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void) const>::PointerToMemberTraits::nArgs, 0); 00030 NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int) const>::PointerToMemberTraits::nArgs, 1); 00031 00032 return result; 00033 } 00034 00035 static TypeTraitsTest g_typeTraitsTest; 00036 00037 } // namespace ns3 00038 00039 #endif /* RUN_SELF_TESTS */ 00040