ident.cpp 582 B

1234567891011121314151617181920212223242526
  1. #include <gtest/gtest.h>
  2. #include <ident.hpp>
  3. struct A {};
  4. struct B {};
  5. TEST(Identifier, Uniqueness) {
  6. constexpr auto ID = entt::ident<A, B>;
  7. constexpr A a;
  8. constexpr B b;
  9. ASSERT_NE(ID.get<A>(), ID.get<B>());
  10. ASSERT_EQ(ID.get<A>(), ID.get<decltype(a)>());
  11. ASSERT_NE(ID.get<A>(), ID.get<decltype(b)>());
  12. ASSERT_EQ(ID.get<A>(), ID.get<A>());
  13. ASSERT_EQ(ID.get<B>(), ID.get<B>());
  14. // test uses in constant expressions
  15. switch(ID.get<B>()) {
  16. case ID.get<A>():
  17. FAIL();
  18. break;
  19. case ID.get<B>():
  20. SUCCEED();
  21. }
  22. }