meta: review meta_arg[_node] + increase code coverage
This commit is contained in:
@@ -138,12 +138,14 @@ meta_type_node resolve() noexcept;
|
||||
|
||||
template<typename... Args>
|
||||
[[nodiscard]] meta_type_node meta_arg_node(type_list<Args...>, [[maybe_unused]] const std::size_t index) noexcept {
|
||||
if constexpr(sizeof...(Args) == 0u) {
|
||||
return {};
|
||||
} else {
|
||||
const meta_type_node args[sizeof...(Args)]{internal::resolve<std::remove_cv_t<std::remove_reference_t<Args>>>()...};
|
||||
return args[index];
|
||||
if constexpr(sizeof...(Args) != 0u) {
|
||||
if(index < sizeof...(Args)) {
|
||||
const meta_type_node args[sizeof...(Args)]{internal::resolve<std::remove_cv_t<std::remove_reference_t<Args>>>()...};
|
||||
return args[index];
|
||||
}
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
template<typename Type>
|
||||
|
||||
@@ -73,8 +73,10 @@ TEST_F(MetaUtility, MetaDispatch) {
|
||||
}
|
||||
|
||||
TEST_F(MetaUtility, MetaArg) {
|
||||
ASSERT_EQ((entt::meta_arg<entt::type_list<>>(3u)), entt::meta_type{});
|
||||
ASSERT_EQ((entt::meta_arg<entt::type_list<int, char>>(0u)), entt::resolve<int>());
|
||||
ASSERT_EQ((entt::meta_arg<entt::type_list<int, char>>(1u)), entt::resolve<char>());
|
||||
ASSERT_EQ((entt::meta_arg<entt::type_list<int, char>>(2u)), entt::meta_type{});
|
||||
}
|
||||
|
||||
TEST_F(MetaUtility, MetaSetter) {
|
||||
|
||||
Reference in New Issue
Block a user