type_id: type_info from variable

This commit is contained in:
Michele Caini
2022-04-05 08:50:08 +02:00
parent f1f47ee44a
commit 9e68eb4d2c
2 changed files with 11 additions and 0 deletions
+6
View File
@@ -262,6 +262,12 @@ template<typename Type>
}
}
/*! @copydoc type_id */
template<typename Type>
[[nodiscard]] const type_info &type_id(Type &&) ENTT_NOEXCEPT {
return type_id<std::remove_cv_t<std::remove_reference_t<Type>>>();
}
} // namespace entt
#endif
+5
View File
@@ -48,6 +48,11 @@ TEST(TypeInfo, Functionalities) {
static_assert(std::is_copy_assignable_v<entt::type_info>);
static_assert(std::is_move_assignable_v<entt::type_info>);
const int value = 42;
ASSERT_EQ(entt::type_id(value), entt::type_id<int>());
ASSERT_EQ(entt::type_id(42), entt::type_id<int>());
ASSERT_EQ(entt::type_id<int>(), entt::type_id<int>());
ASSERT_EQ(entt::type_id<int &>(), entt::type_id<int &&>());
ASSERT_EQ(entt::type_id<int &>(), entt::type_id<int>());