Files
entt/test/ident.cpp
2017-09-08 15:35:02 +02:00

27 lines
582 B
C++

#include <gtest/gtest.h>
#include <ident.hpp>
struct A {};
struct B {};
TEST(Identifier, Uniqueness) {
constexpr auto ID = entt::ident<A, B>;
constexpr A a;
constexpr B b;
ASSERT_NE(ID.get<A>(), ID.get<B>());
ASSERT_EQ(ID.get<A>(), ID.get<decltype(a)>());
ASSERT_NE(ID.get<A>(), ID.get<decltype(b)>());
ASSERT_EQ(ID.get<A>(), ID.get<A>());
ASSERT_EQ(ID.get<B>(), ID.get<B>());
// test uses in constant expressions
switch(ID.get<B>()) {
case ID.get<A>():
FAIL();
break;
case ID.get<B>():
SUCCEED();
}
}