bug fixing
This commit is contained in:
@@ -1848,8 +1848,11 @@ public:
|
||||
std::array<meta_any, sizeof...(Args)> arguments{{std::forward<Args>(args)...}};
|
||||
meta_any any{};
|
||||
|
||||
internal::iterate<&internal::meta_type_node::ctor>([data = arguments.data(), &any](auto *curr) -> bool {
|
||||
any = curr->invoke(data);
|
||||
internal::find_if<&internal::meta_type_node::ctor>([data = arguments.data(), &any](auto *curr) -> bool {
|
||||
if(curr->size == sizeof...(args)) {
|
||||
any = curr->invoke(data);
|
||||
}
|
||||
|
||||
return static_cast<bool>(any);
|
||||
}, node);
|
||||
|
||||
|
||||
@@ -1420,6 +1420,12 @@ TEST_F(Meta, MetaTypeConstructInvalidArgs) {
|
||||
ASSERT_FALSE(any);
|
||||
}
|
||||
|
||||
TEST_F(Meta, MetaTypeLessArgs) {
|
||||
auto type = entt::resolve<derived_type>();
|
||||
auto any = type.construct(base_type{});
|
||||
ASSERT_FALSE(any);
|
||||
}
|
||||
|
||||
TEST_F(Meta, MetaTypeConstructCastAndConvert) {
|
||||
auto type = entt::resolve<derived_type>();
|
||||
auto any = type.construct(entt::meta_any{derived_type{}}, entt::meta_any{42.}, entt::meta_any{'c'});
|
||||
|
||||
Reference in New Issue
Block a user