utility.cpp 787 B

1234567891011121314151617181920212223242526
  1. #include <gtest/gtest.h>
  2. #include <entt/core/utility.hpp>
  3. struct Functions {
  4. static void foo(int) {}
  5. static void foo() {}
  6. void bar(int) {}
  7. void bar() {}
  8. };
  9. TEST(Utility, Identity) {
  10. entt::identity identity;
  11. int value = 42;
  12. ASSERT_EQ(identity(value), value);
  13. ASSERT_EQ(&identity(value), &value);
  14. }
  15. TEST(Utility, Overload) {
  16. ASSERT_EQ(entt::overload<void(int)>(&Functions::foo), static_cast<void(*)(int)>(&Functions::foo));
  17. ASSERT_EQ(entt::overload<void()>(&Functions::foo), static_cast<void(*)()>(&Functions::foo));
  18. ASSERT_EQ(entt::overload<void(int)>(&Functions::bar), static_cast<void(Functions:: *)(int)>(&Functions::bar));
  19. ASSERT_EQ(entt::overload<void()>(&Functions::bar), static_cast<void(Functions:: *)()>(&Functions::bar));
  20. }