src/core/type-traits-test.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sat, 04 Jul 2009 08:15:48 +0200
changeset 4654 2eaebe77d66b
parent 1678 00452ae23a6f
permissions -rw-r--r--
Added tag ns-3.5 for changeset c975274c9707

#include "type-traits.h"
#include "test.h"

#ifdef RUN_SELF_TESTS

namespace ns3 {

class TypeTraitsTest : public Test
{
public:
  TypeTraitsTest ();
  virtual bool RunTests (void);
};

TypeTraitsTest::TypeTraitsTest ()
  : Test ("TypeTraits")
{}
bool 
TypeTraitsTest::RunTests (void)
{
  bool result = true;

  //TypeTraits<int &>::ReferencedType ir;
  //TypeTraits<const int>::NonConstType uci;
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void)>::IsPointerToMember, 1);
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void) const>::IsPointerToMember, 1);
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int)>::IsPointerToMember, 1);
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int) const>::IsPointerToMember, 1);
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void) const>::PointerToMemberTraits::nArgs, 0);
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int) const>::PointerToMemberTraits::nArgs, 1);

  return result;
}

static TypeTraitsTest g_typeTraitsTest;

} // namespace ns3

#endif /* RUN_SELF_TESTS */