|
|
@@ -231,14 +231,14 @@ TEST_F(Meta, MetaAnySBO) {
|
|
|
entt::meta_any any{'c'};
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_FALSE(any.can_cast<void>());
|
|
|
- ASSERT_TRUE(any.can_cast<char>());
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<char>());
|
|
|
ASSERT_EQ(any.cast<char>(), 'c');
|
|
|
ASSERT_EQ(std::as_const(any).cast<char>(), 'c');
|
|
|
ASSERT_NE(any.data(), nullptr);
|
|
|
ASSERT_NE(std::as_const(any).data(), nullptr);
|
|
|
ASSERT_EQ(any, entt::meta_any{'c'});
|
|
|
- ASSERT_NE(any, entt::meta_any{'h'});
|
|
|
+ ASSERT_NE(entt::meta_any{'h'}, any);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaAnyNoSBO) {
|
|
|
@@ -247,14 +247,14 @@ TEST_F(Meta, MetaAnyNoSBO) {
|
|
|
entt::meta_any any{instance};
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_FALSE(any.can_cast<void>());
|
|
|
- ASSERT_TRUE(any.can_cast<fat_type>());
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<fat_type>());
|
|
|
ASSERT_EQ(any.cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(std::as_const(any).cast<fat_type>(), instance);
|
|
|
ASSERT_NE(any.data(), nullptr);
|
|
|
ASSERT_NE(std::as_const(any).data(), nullptr);
|
|
|
ASSERT_EQ(any, entt::meta_any{instance});
|
|
|
- ASSERT_NE(any, fat_type{});
|
|
|
+ ASSERT_NE(fat_type{}, any);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaAnyEmpty) {
|
|
|
@@ -262,27 +262,45 @@ TEST_F(Meta, MetaAnyEmpty) {
|
|
|
|
|
|
ASSERT_FALSE(any);
|
|
|
ASSERT_FALSE(any.type());
|
|
|
- ASSERT_FALSE(any.can_cast<void>());
|
|
|
- ASSERT_FALSE(any.can_cast<empty_type>());
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_FALSE(any.try_cast<empty_type>());
|
|
|
ASSERT_EQ(any.data(), nullptr);
|
|
|
ASSERT_EQ(std::as_const(any).data(), nullptr);
|
|
|
ASSERT_EQ(any, entt::meta_any{});
|
|
|
- ASSERT_NE(any, entt::meta_any{'c'});
|
|
|
+ ASSERT_NE(entt::meta_any{'c'}, any);
|
|
|
}
|
|
|
|
|
|
-TEST_F(Meta, MetaAnySBOInPlaceConstruction) {
|
|
|
+TEST_F(Meta, MetaAnySBOInPlaceTypeConstruction) {
|
|
|
entt::meta_any any{std::in_place_type<int>, 42};
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_FALSE(any.can_cast<void>());
|
|
|
- ASSERT_TRUE(any.can_cast<int>());
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<int>());
|
|
|
ASSERT_EQ(any.cast<int>(), 42);
|
|
|
ASSERT_EQ(std::as_const(any).cast<int>(), 42);
|
|
|
ASSERT_NE(any.data(), nullptr);
|
|
|
ASSERT_NE(std::as_const(any).data(), nullptr);
|
|
|
ASSERT_EQ(any, (entt::meta_any{std::in_place_type<int>, 42}));
|
|
|
ASSERT_EQ(any, entt::meta_any{42});
|
|
|
- ASSERT_NE(any, entt::meta_any{3});
|
|
|
+ ASSERT_NE(entt::meta_any{3}, any);
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(Meta, MetaAnySBOInPlaceConstruction) {
|
|
|
+ int value = 3;
|
|
|
+ int other = 42;
|
|
|
+ entt::meta_any any{std::in_place, value};
|
|
|
+
|
|
|
+ ASSERT_TRUE(any);
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<int>());
|
|
|
+ ASSERT_EQ(any.cast<int>(), 3);
|
|
|
+ ASSERT_EQ(std::as_const(any).cast<int>(), 3);
|
|
|
+ ASSERT_NE(any.data(), nullptr);
|
|
|
+ ASSERT_NE(std::as_const(any).data(), nullptr);
|
|
|
+ ASSERT_EQ(any, (entt::meta_any{std::in_place, value}));
|
|
|
+ ASSERT_NE(any, (entt::meta_any{std::in_place, other}));
|
|
|
+ ASSERT_NE(any, entt::meta_any{42});
|
|
|
+ ASSERT_EQ(entt::meta_any{3}, any);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaAnySBOCopyConstruction) {
|
|
|
@@ -291,8 +309,8 @@ TEST_F(Meta, MetaAnySBOCopyConstruction) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<int>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<int>());
|
|
|
ASSERT_EQ(other.cast<int>(), 42);
|
|
|
ASSERT_EQ(std::as_const(other).cast<int>(), 42);
|
|
|
ASSERT_EQ(other, entt::meta_any{42});
|
|
|
@@ -307,8 +325,8 @@ TEST_F(Meta, MetaAnySBOCopyAssignment) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<int>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<int>());
|
|
|
ASSERT_EQ(other.cast<int>(), 42);
|
|
|
ASSERT_EQ(std::as_const(other).cast<int>(), 42);
|
|
|
ASSERT_EQ(other, entt::meta_any{42});
|
|
|
@@ -321,8 +339,8 @@ TEST_F(Meta, MetaAnySBOMoveConstruction) {
|
|
|
|
|
|
ASSERT_FALSE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<int>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<int>());
|
|
|
ASSERT_EQ(other.cast<int>(), 42);
|
|
|
ASSERT_EQ(std::as_const(other).cast<int>(), 42);
|
|
|
ASSERT_EQ(other, entt::meta_any{42});
|
|
|
@@ -337,29 +355,58 @@ TEST_F(Meta, MetaAnySBOMoveAssignment) {
|
|
|
|
|
|
ASSERT_FALSE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<int>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<int>());
|
|
|
ASSERT_EQ(other.cast<int>(), 42);
|
|
|
ASSERT_EQ(std::as_const(other).cast<int>(), 42);
|
|
|
ASSERT_EQ(other, entt::meta_any{42});
|
|
|
ASSERT_NE(other, entt::meta_any{0});
|
|
|
}
|
|
|
|
|
|
-TEST_F(Meta, MetaAnyNoSBOInPlaceConstruction) {
|
|
|
+TEST_F(Meta, MetaAnySBODirectAssignment) {
|
|
|
+ entt::meta_any any{};
|
|
|
+ any = 42;
|
|
|
+
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<int>());
|
|
|
+ ASSERT_EQ(any.cast<int>(), 42);
|
|
|
+ ASSERT_EQ(std::as_const(any).cast<int>(), 42);
|
|
|
+ ASSERT_EQ(any, entt::meta_any{42});
|
|
|
+ ASSERT_NE(entt::meta_any{0}, any);
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(Meta, MetaAnyNoSBOInPlaceTypeConstruction) {
|
|
|
int value = 42;
|
|
|
fat_type instance{&value};
|
|
|
entt::meta_any any{std::in_place_type<fat_type>, instance};
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_FALSE(any.can_cast<void>());
|
|
|
- ASSERT_TRUE(any.can_cast<fat_type>());
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<fat_type>());
|
|
|
ASSERT_EQ(any.cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(std::as_const(any).cast<fat_type>(), instance);
|
|
|
ASSERT_NE(any.data(), nullptr);
|
|
|
ASSERT_NE(std::as_const(any).data(), nullptr);
|
|
|
ASSERT_EQ(any, (entt::meta_any{std::in_place_type<fat_type>, instance}));
|
|
|
ASSERT_EQ(any, entt::meta_any{instance});
|
|
|
- ASSERT_NE(any, entt::meta_any{fat_type{}});
|
|
|
+ ASSERT_NE(entt::meta_any{fat_type{}}, any);
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(Meta, MetaAnyNoSBOInPlaceConstruction) {
|
|
|
+ int value = 3;
|
|
|
+ fat_type instance{&value};
|
|
|
+ entt::meta_any any{std::in_place, instance};
|
|
|
+
|
|
|
+ ASSERT_TRUE(any);
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<fat_type>());
|
|
|
+ ASSERT_EQ(any.cast<fat_type>(), instance);
|
|
|
+ ASSERT_EQ(std::as_const(any).cast<fat_type>(), instance);
|
|
|
+ ASSERT_NE(any.data(), nullptr);
|
|
|
+ ASSERT_NE(std::as_const(any).data(), nullptr);
|
|
|
+ ASSERT_EQ(any, (entt::meta_any{std::in_place, instance}));
|
|
|
+ ASSERT_EQ(any, entt::meta_any{instance});
|
|
|
+ ASSERT_NE(entt::meta_any{fat_type{}}, any);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaAnyNoSBOCopyConstruction) {
|
|
|
@@ -370,8 +417,8 @@ TEST_F(Meta, MetaAnyNoSBOCopyConstruction) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<fat_type>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<fat_type>());
|
|
|
ASSERT_EQ(other.cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(std::as_const(other).cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(other, entt::meta_any{instance});
|
|
|
@@ -388,8 +435,8 @@ TEST_F(Meta, MetaAnyNoSBOCopyAssignment) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<fat_type>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<fat_type>());
|
|
|
ASSERT_EQ(other.cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(std::as_const(other).cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(other, entt::meta_any{instance});
|
|
|
@@ -404,8 +451,8 @@ TEST_F(Meta, MetaAnyNoSBOMoveConstruction) {
|
|
|
|
|
|
ASSERT_FALSE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<fat_type>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<fat_type>());
|
|
|
ASSERT_EQ(other.cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(std::as_const(other).cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(other, entt::meta_any{instance});
|
|
|
@@ -422,23 +469,37 @@ TEST_F(Meta, MetaAnyNoSBOMoveAssignment) {
|
|
|
|
|
|
ASSERT_FALSE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_FALSE(other.can_cast<void>());
|
|
|
- ASSERT_TRUE(other.can_cast<fat_type>());
|
|
|
+ ASSERT_FALSE(other.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(other.try_cast<fat_type>());
|
|
|
ASSERT_EQ(other.cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(std::as_const(other).cast<fat_type>(), instance);
|
|
|
ASSERT_EQ(other, entt::meta_any{instance});
|
|
|
ASSERT_NE(other, fat_type{});
|
|
|
}
|
|
|
|
|
|
-TEST_F(Meta, MetaAnyVoidInPlaceConstruction) {
|
|
|
+TEST_F(Meta, MetaAnyNoSBODirectAssignment) {
|
|
|
+ int value = 42;
|
|
|
+ entt::meta_any any{};
|
|
|
+ any = fat_type{&value};
|
|
|
+
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<fat_type>());
|
|
|
+ ASSERT_EQ(any.cast<fat_type>(), fat_type{&value});
|
|
|
+ ASSERT_EQ(std::as_const(any).cast<fat_type>(), fat_type{&value});
|
|
|
+ ASSERT_EQ(any, entt::meta_any{fat_type{&value}});
|
|
|
+ ASSERT_NE(fat_type{}, any);
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(Meta, MetaAnyVoidInPlaceTypeConstruction) {
|
|
|
entt::meta_any any{std::in_place_type<void>};
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<void>());
|
|
|
- ASSERT_FALSE(any.can_cast<char>());
|
|
|
+ ASSERT_FALSE(any.try_cast<char>());
|
|
|
ASSERT_EQ(any.data(), nullptr);
|
|
|
ASSERT_EQ(std::as_const(any).data(), nullptr);
|
|
|
+ ASSERT_EQ(any.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(any, entt::meta_any{std::in_place_type<void>});
|
|
|
+ ASSERT_NE(entt::meta_any{3}, any);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaAnyVoidCopyConstruction) {
|
|
|
@@ -447,7 +508,7 @@ TEST_F(Meta, MetaAnyVoidCopyConstruction) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_TRUE(other.can_cast<void>());
|
|
|
+ ASSERT_EQ(any.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(other, entt::meta_any{std::in_place_type<void>});
|
|
|
}
|
|
|
|
|
|
@@ -459,7 +520,7 @@ TEST_F(Meta, MetaAnyVoidCopyAssignment) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_TRUE(other.can_cast<void>());
|
|
|
+ ASSERT_EQ(any.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(other, entt::meta_any{std::in_place_type<void>});
|
|
|
}
|
|
|
|
|
|
@@ -469,7 +530,7 @@ TEST_F(Meta, MetaAnyVoidMoveConstruction) {
|
|
|
|
|
|
ASSERT_FALSE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_TRUE(other.can_cast<void>());
|
|
|
+ ASSERT_EQ(other.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(other, entt::meta_any{std::in_place_type<void>});
|
|
|
}
|
|
|
|
|
|
@@ -481,7 +542,7 @@ TEST_F(Meta, MetaAnyVoidMoveAssignment) {
|
|
|
|
|
|
ASSERT_FALSE(any);
|
|
|
ASSERT_TRUE(other);
|
|
|
- ASSERT_TRUE(other.can_cast<void>());
|
|
|
+ ASSERT_EQ(other.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(other, entt::meta_any{std::in_place_type<void>});
|
|
|
}
|
|
|
|
|
|
@@ -539,15 +600,15 @@ TEST_F(Meta, MetaAnyEmplace) {
|
|
|
any.emplace<int>(42);
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_FALSE(any.can_cast<void>());
|
|
|
- ASSERT_TRUE(any.can_cast<int>());
|
|
|
+ ASSERT_FALSE(any.try_cast<std::size_t>());
|
|
|
+ ASSERT_TRUE(any.try_cast<int>());
|
|
|
ASSERT_EQ(any.cast<int>(), 42);
|
|
|
ASSERT_EQ(std::as_const(any).cast<int>(), 42);
|
|
|
ASSERT_NE(any.data(), nullptr);
|
|
|
ASSERT_NE(std::as_const(any).data(), nullptr);
|
|
|
ASSERT_EQ(any, (entt::meta_any{std::in_place_type<int>, 42}));
|
|
|
ASSERT_EQ(any, entt::meta_any{42});
|
|
|
- ASSERT_NE(any, entt::meta_any{3});
|
|
|
+ ASSERT_NE(entt::meta_any{3}, any);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaAnyEmplaceVoid) {
|
|
|
@@ -555,9 +616,9 @@ TEST_F(Meta, MetaAnyEmplaceVoid) {
|
|
|
any.emplace<void>();
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<void>());
|
|
|
ASSERT_EQ(any.data(), nullptr);
|
|
|
ASSERT_EQ(std::as_const(any).data(), nullptr);
|
|
|
+ ASSERT_EQ(any.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(any, (entt::meta_any{std::in_place_type<void>}));
|
|
|
}
|
|
|
|
|
|
@@ -567,9 +628,9 @@ TEST_F(Meta, MetaAnySBOSwap) {
|
|
|
|
|
|
std::swap(lhs, rhs);
|
|
|
|
|
|
- ASSERT_TRUE(lhs.can_cast<int>());
|
|
|
+ ASSERT_TRUE(lhs.try_cast<int>());
|
|
|
ASSERT_EQ(lhs.cast<int>(), 42);
|
|
|
- ASSERT_TRUE(rhs.can_cast<char>());
|
|
|
+ ASSERT_TRUE(rhs.try_cast<char>());
|
|
|
ASSERT_EQ(rhs.cast<char>(), 'c');
|
|
|
}
|
|
|
|
|
|
@@ -601,9 +662,9 @@ TEST_F(Meta, MetaAnySBOWithNoSBOSwap) {
|
|
|
|
|
|
std::swap(lhs, rhs);
|
|
|
|
|
|
- ASSERT_TRUE(lhs.can_cast<char>());
|
|
|
+ ASSERT_TRUE(lhs.try_cast<char>());
|
|
|
ASSERT_EQ(lhs.cast<char>(), 'c');
|
|
|
- ASSERT_TRUE(rhs.can_cast<fat_type>());
|
|
|
+ ASSERT_TRUE(rhs.try_cast<fat_type>());
|
|
|
ASSERT_EQ(rhs.cast<fat_type>().foo, &value);
|
|
|
ASSERT_EQ(rhs.cast<fat_type>().bar, &value);
|
|
|
}
|
|
|
@@ -615,13 +676,13 @@ TEST_F(Meta, MetaAnySBOWithEmptySwap) {
|
|
|
std::swap(lhs, rhs);
|
|
|
|
|
|
ASSERT_FALSE(lhs);
|
|
|
- ASSERT_TRUE(rhs.can_cast<char>());
|
|
|
+ ASSERT_TRUE(rhs.try_cast<char>());
|
|
|
ASSERT_EQ(rhs.cast<char>(), 'c');
|
|
|
|
|
|
std::swap(lhs, rhs);
|
|
|
|
|
|
ASSERT_FALSE(rhs);
|
|
|
- ASSERT_TRUE(lhs.can_cast<char>());
|
|
|
+ ASSERT_TRUE(lhs.try_cast<char>());
|
|
|
ASSERT_EQ(lhs.cast<char>(), 'c');
|
|
|
}
|
|
|
|
|
|
@@ -631,8 +692,8 @@ TEST_F(Meta, MetaAnySBOWithVoidSwap) {
|
|
|
|
|
|
std::swap(lhs, rhs);
|
|
|
|
|
|
- ASSERT_TRUE(lhs.can_cast<void>());
|
|
|
- ASSERT_TRUE(rhs.can_cast<char>());
|
|
|
+ ASSERT_EQ(lhs.type(), entt::resolve<void>());
|
|
|
+ ASSERT_TRUE(rhs.try_cast<char>());
|
|
|
ASSERT_EQ(rhs.cast<char>(), 'c');
|
|
|
}
|
|
|
|
|
|
@@ -669,7 +730,7 @@ TEST_F(Meta, MetaAnyComparable) {
|
|
|
|
|
|
ASSERT_EQ(any, any);
|
|
|
ASSERT_EQ(any, entt::meta_any{'c'});
|
|
|
- ASSERT_NE(any, entt::meta_any{'a'});
|
|
|
+ ASSERT_NE(entt::meta_any{'a'}, any);
|
|
|
ASSERT_NE(any, entt::meta_any{});
|
|
|
|
|
|
ASSERT_TRUE(any == any);
|
|
|
@@ -684,7 +745,7 @@ TEST_F(Meta, MetaAnyNotComparable) {
|
|
|
|
|
|
ASSERT_EQ(any, any);
|
|
|
ASSERT_NE(any, entt::meta_any{not_comparable_type{}});
|
|
|
- ASSERT_NE(any, entt::meta_any{});
|
|
|
+ ASSERT_NE(entt::meta_any{}, any);
|
|
|
|
|
|
ASSERT_TRUE(any == any);
|
|
|
ASSERT_FALSE(any == entt::meta_any{not_comparable_type{}});
|
|
|
@@ -696,7 +757,7 @@ TEST_F(Meta, MetaAnyCompareVoid) {
|
|
|
|
|
|
ASSERT_EQ(any, any);
|
|
|
ASSERT_EQ(any, entt::meta_any{std::in_place_type<void>});
|
|
|
- ASSERT_NE(any, entt::meta_any{'a'});
|
|
|
+ ASSERT_NE(entt::meta_any{'a'}, any);
|
|
|
ASSERT_NE(any, entt::meta_any{});
|
|
|
|
|
|
ASSERT_TRUE(any == any);
|
|
|
@@ -706,19 +767,28 @@ TEST_F(Meta, MetaAnyCompareVoid) {
|
|
|
ASSERT_TRUE(any != entt::meta_any{});
|
|
|
}
|
|
|
|
|
|
+TEST_F(Meta, MetaAnyTryCast) {
|
|
|
+ entt::meta_any any{derived_type{}};
|
|
|
+
|
|
|
+ ASSERT_TRUE(any);
|
|
|
+ ASSERT_EQ(any.type(), entt::resolve<derived_type>());
|
|
|
+ ASSERT_EQ(any.try_cast<void>(), nullptr);
|
|
|
+ ASSERT_NE(any.try_cast<base_type>(), nullptr);
|
|
|
+ ASSERT_EQ(any.try_cast<derived_type>(), any.data());
|
|
|
+ ASSERT_EQ(std::as_const(any).try_cast<base_type>(), any.try_cast<base_type>());
|
|
|
+ ASSERT_EQ(std::as_const(any).try_cast<derived_type>(), any.data());
|
|
|
+}
|
|
|
+
|
|
|
TEST_F(Meta, MetaAnyCast) {
|
|
|
entt::meta_any any{derived_type{}};
|
|
|
- entt::meta_handle handle{any};
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_EQ(any.type(), entt::resolve<derived_type>());
|
|
|
- ASSERT_FALSE(any.can_cast<void>());
|
|
|
- ASSERT_TRUE(any.can_cast<base_type>());
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
- ASSERT_EQ(&any.cast<base_type>(), handle.try_cast<base_type>());
|
|
|
- ASSERT_EQ(&any.cast<derived_type>(), handle.try_cast<derived_type>());
|
|
|
- ASSERT_EQ(&std::as_const(any).cast<base_type>(), handle.try_cast<base_type>());
|
|
|
- ASSERT_EQ(&std::as_const(any).cast<derived_type>(), handle.try_cast<derived_type>());
|
|
|
+ ASSERT_EQ(any.try_cast<std::size_t>(), nullptr);
|
|
|
+ ASSERT_NE(any.try_cast<base_type>(), nullptr);
|
|
|
+ ASSERT_EQ(any.try_cast<derived_type>(), any.data());
|
|
|
+ ASSERT_EQ(std::as_const(any).try_cast<base_type>(), any.try_cast<base_type>());
|
|
|
+ ASSERT_EQ(std::as_const(any).try_cast<derived_type>(), any.data());
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaAnyConvert) {
|
|
|
@@ -726,18 +796,11 @@ TEST_F(Meta, MetaAnyConvert) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_EQ(any.type(), entt::resolve<double>());
|
|
|
- ASSERT_FALSE(any.can_convert<char>());
|
|
|
- ASSERT_TRUE(any.can_convert<double>());
|
|
|
- ASSERT_TRUE(any.can_convert<int>());
|
|
|
-
|
|
|
ASSERT_TRUE(any.convert<double>());
|
|
|
ASSERT_FALSE(any.convert<char>());
|
|
|
-
|
|
|
ASSERT_EQ(any.type(), entt::resolve<double>());
|
|
|
ASSERT_EQ(any.cast<double>(), 42.);
|
|
|
-
|
|
|
ASSERT_TRUE(any.convert<int>());
|
|
|
-
|
|
|
ASSERT_EQ(any.type(), entt::resolve<int>());
|
|
|
ASSERT_EQ(any.cast<int>(), 42);
|
|
|
}
|
|
|
@@ -747,13 +810,8 @@ TEST_F(Meta, MetaAnyConstConvert) {
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_EQ(any.type(), entt::resolve<double>());
|
|
|
- ASSERT_FALSE(any.can_convert<char>());
|
|
|
- ASSERT_TRUE(any.can_convert<double>());
|
|
|
- ASSERT_TRUE(any.can_convert<int>());
|
|
|
-
|
|
|
ASSERT_TRUE(any.convert<double>());
|
|
|
ASSERT_FALSE(any.convert<char>());
|
|
|
-
|
|
|
ASSERT_EQ(any.type(), entt::resolve<double>());
|
|
|
ASSERT_EQ(any.cast<double>(), 42.);
|
|
|
|
|
|
@@ -771,9 +829,9 @@ TEST_F(Meta, MetaHandleFromObject) {
|
|
|
|
|
|
ASSERT_TRUE(handle);
|
|
|
ASSERT_EQ(handle.type(), entt::resolve<empty_type>());
|
|
|
- ASSERT_EQ(handle.try_cast<void>(), nullptr);
|
|
|
- ASSERT_EQ(handle.try_cast<empty_type>(), &empty);
|
|
|
- ASSERT_EQ(std::as_const(handle).try_cast<empty_type>(), &empty);
|
|
|
+ ASSERT_EQ(handle.data<std::size_t>(), nullptr);
|
|
|
+ ASSERT_EQ(handle.data<empty_type>(), &empty);
|
|
|
+ ASSERT_EQ(std::as_const(handle).data<empty_type>(), &empty);
|
|
|
ASSERT_EQ(handle.data(), &empty);
|
|
|
ASSERT_EQ(std::as_const(handle).data(), &empty);
|
|
|
}
|
|
|
@@ -784,9 +842,9 @@ TEST_F(Meta, MetaHandleFromMetaAny) {
|
|
|
|
|
|
ASSERT_TRUE(handle);
|
|
|
ASSERT_EQ(handle.type(), entt::resolve<int>());
|
|
|
- ASSERT_EQ(handle.try_cast<void>(), nullptr);
|
|
|
- ASSERT_EQ(handle.try_cast<int>(), any.data());
|
|
|
- ASSERT_EQ(std::as_const(handle).try_cast<int>(), any.data());
|
|
|
+ ASSERT_EQ(handle.data<std::size_t>(), nullptr);
|
|
|
+ ASSERT_EQ(handle.data<int>(), any.data());
|
|
|
+ ASSERT_EQ(std::as_const(handle).data<int>(), any.data());
|
|
|
ASSERT_EQ(handle.data(), any.data());
|
|
|
ASSERT_EQ(std::as_const(handle).data(), any.data());
|
|
|
}
|
|
|
@@ -796,24 +854,24 @@ TEST_F(Meta, MetaHandleEmpty) {
|
|
|
|
|
|
ASSERT_FALSE(handle);
|
|
|
ASSERT_FALSE(handle.type());
|
|
|
- ASSERT_EQ(handle.try_cast<void>(), nullptr);
|
|
|
- ASSERT_EQ(handle.try_cast<empty_type>(), nullptr);
|
|
|
+ ASSERT_EQ(handle.data<std::size_t>(), nullptr);
|
|
|
+ ASSERT_EQ(handle.data<empty_type>(), nullptr);
|
|
|
ASSERT_EQ(handle.data(), nullptr);
|
|
|
ASSERT_EQ(std::as_const(handle).data(), nullptr);
|
|
|
}
|
|
|
|
|
|
-TEST_F(Meta, MetaHandleTryCast) {
|
|
|
+TEST_F(Meta, MetaHandleData) {
|
|
|
derived_type derived{};
|
|
|
base_type *base = &derived;
|
|
|
entt::meta_handle handle{derived};
|
|
|
|
|
|
ASSERT_TRUE(handle);
|
|
|
ASSERT_EQ(handle.type(), entt::resolve<derived_type>());
|
|
|
- ASSERT_EQ(handle.try_cast<void>(), nullptr);
|
|
|
- ASSERT_EQ(handle.try_cast<base_type>(), base);
|
|
|
- ASSERT_EQ(handle.try_cast<derived_type>(), &derived);
|
|
|
- ASSERT_EQ(std::as_const(handle).try_cast<base_type>(), base);
|
|
|
- ASSERT_EQ(std::as_const(handle).try_cast<derived_type>(), &derived);
|
|
|
+ ASSERT_EQ(handle.data<std::size_t>(), nullptr);
|
|
|
+ ASSERT_EQ(handle.data<base_type>(), base);
|
|
|
+ ASSERT_EQ(handle.data<derived_type>(), &derived);
|
|
|
+ ASSERT_EQ(std::as_const(handle).data<base_type>(), base);
|
|
|
+ ASSERT_EQ(std::as_const(handle).data<derived_type>(), &derived);
|
|
|
ASSERT_EQ(handle.data(), &derived);
|
|
|
ASSERT_EQ(std::as_const(handle).data(), &derived);
|
|
|
}
|
|
|
@@ -903,7 +961,7 @@ TEST_F(Meta, MetaCtor) {
|
|
|
|
|
|
ASSERT_FALSE(empty);
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
|
|
|
@@ -937,7 +995,7 @@ TEST_F(Meta, MetaCtorFunc) {
|
|
|
|
|
|
ASSERT_FALSE(empty);
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
|
|
|
@@ -961,7 +1019,7 @@ TEST_F(Meta, MetaCtorMetaAnyArgs) {
|
|
|
auto any = ctor.invoke(base_type{}, entt::meta_any{42}, entt::meta_any{'c'});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
}
|
|
|
@@ -976,7 +1034,7 @@ TEST_F(Meta, MetaCtorCastAndConvert) {
|
|
|
auto any = ctor.invoke(entt::meta_any{derived_type{}}, entt::meta_any{42.}, entt::meta_any{'c'});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
}
|
|
|
@@ -986,7 +1044,7 @@ TEST_F(Meta, MetaCtorFuncMetaAnyArgs) {
|
|
|
auto any = ctor.invoke(base_type{}, entt::meta_any{42});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
}
|
|
|
@@ -1001,7 +1059,7 @@ TEST_F(Meta, MetaCtorFuncCastAndConvert) {
|
|
|
auto any = ctor.invoke(entt::meta_any{derived_type{}}, entt::meta_any{42.});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
}
|
|
|
@@ -1028,7 +1086,8 @@ TEST_F(Meta, MetaDtorMetaAnyArg) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDtorMetaAnyInvalidArg) {
|
|
|
- ASSERT_FALSE(entt::resolve<empty_type>().dtor().invoke(int{}));
|
|
|
+ auto instance = 0;
|
|
|
+ ASSERT_FALSE(entt::resolve<empty_type>().dtor().invoke(instance));
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1154,12 +1213,13 @@ TEST_F(Meta, MetaDataGetMetaAnyArg) {
|
|
|
const auto value = data.get(any);
|
|
|
|
|
|
ASSERT_TRUE(value);
|
|
|
- ASSERT_TRUE(value.can_cast<int>());
|
|
|
+ ASSERT_TRUE(value.cast<int>());
|
|
|
ASSERT_EQ(value.cast<int>(), 99);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataGetInvalidArg) {
|
|
|
- ASSERT_FALSE(entt::resolve<data_type>().data("i"_hs).get(0));
|
|
|
+ auto instance = 0;
|
|
|
+ ASSERT_FALSE(entt::resolve<data_type>().data("i"_hs).get(instance));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetMetaAnyArg) {
|
|
|
@@ -1274,17 +1334,17 @@ TEST_F(Meta, MetaDataArrayStatic) {
|
|
|
ASSERT_TRUE(data.is_static());
|
|
|
ASSERT_TRUE(data.type().is_array());
|
|
|
ASSERT_EQ(data.type().extent(), 3);
|
|
|
- ASSERT_EQ(data.get(nullptr, 0).cast<int>(), 3);
|
|
|
- ASSERT_EQ(data.get(nullptr, 1).cast<int>(), 5);
|
|
|
- ASSERT_EQ(data.get(nullptr, 2).cast<int>(), 7);
|
|
|
- ASSERT_FALSE(data.set(nullptr, 0, 'c'));
|
|
|
- ASSERT_EQ(data.get(nullptr, 0).cast<int>(), 3);
|
|
|
- ASSERT_TRUE(data.set(nullptr, 0, data.get(nullptr, 0).cast<int>()+2));
|
|
|
- ASSERT_TRUE(data.set(nullptr, 1, data.get(nullptr, 1).cast<int>()+2));
|
|
|
- ASSERT_TRUE(data.set(nullptr, 2, data.get(nullptr, 2).cast<int>()+2));
|
|
|
- ASSERT_EQ(data.get(nullptr, 0).cast<int>(), 5);
|
|
|
- ASSERT_EQ(data.get(nullptr, 1).cast<int>(), 7);
|
|
|
- ASSERT_EQ(data.get(nullptr, 2).cast<int>(), 9);
|
|
|
+ ASSERT_EQ(data.get({}, 0).cast<int>(), 3);
|
|
|
+ ASSERT_EQ(data.get({}, 1).cast<int>(), 5);
|
|
|
+ ASSERT_EQ(data.get({}, 2).cast<int>(), 7);
|
|
|
+ ASSERT_FALSE(data.set({}, 0, 'c'));
|
|
|
+ ASSERT_EQ(data.get({}, 0).cast<int>(), 3);
|
|
|
+ ASSERT_TRUE(data.set({}, 0, data.get({}, 0).cast<int>()+2));
|
|
|
+ ASSERT_TRUE(data.set({}, 1, data.get({}, 1).cast<int>()+2));
|
|
|
+ ASSERT_TRUE(data.set({}, 2, data.get({}, 2).cast<int>()+2));
|
|
|
+ ASSERT_EQ(data.get({}, 0).cast<int>(), 5);
|
|
|
+ ASSERT_EQ(data.get({}, 1).cast<int>(), 7);
|
|
|
+ ASSERT_EQ(data.get({}, 2).cast<int>(), 9);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataArray) {
|
|
|
@@ -1411,7 +1471,7 @@ TEST_F(Meta, MetaFuncRetVoid) {
|
|
|
auto any = func.invoke(instance, 5);
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<void>());
|
|
|
+ ASSERT_EQ(any.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(func_type::value, 25);
|
|
|
|
|
|
func.prop([](auto prop) {
|
|
|
@@ -1481,7 +1541,7 @@ TEST_F(Meta, MetaFuncStaticRetVoid) {
|
|
|
auto any = func.invoke({}, 42);
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<void>());
|
|
|
+ ASSERT_EQ(any.type(), entt::resolve<void>());
|
|
|
ASSERT_EQ(func_type::value, 42);
|
|
|
|
|
|
func.prop([](auto *prop) {
|
|
|
@@ -1501,7 +1561,9 @@ TEST_F(Meta, MetaFuncStaticRetVoid) {
|
|
|
|
|
|
TEST_F(Meta, MetaFuncMetaAnyArgs) {
|
|
|
auto func = entt::resolve<func_type>().func("f1"_hs);
|
|
|
- auto any = func.invoke(func_type{}, entt::meta_any{3});
|
|
|
+ func_type instance;
|
|
|
+
|
|
|
+ auto any = func.invoke(instance, entt::meta_any{3});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_EQ(any.type(), entt::resolve<int>());
|
|
|
@@ -1510,12 +1572,16 @@ TEST_F(Meta, MetaFuncMetaAnyArgs) {
|
|
|
|
|
|
TEST_F(Meta, MetaFuncInvalidArgs) {
|
|
|
auto func = entt::resolve<func_type>().func("f1"_hs);
|
|
|
- ASSERT_FALSE(func.invoke(empty_type{}, entt::meta_any{'c'}));
|
|
|
+ empty_type instance;
|
|
|
+
|
|
|
+ ASSERT_FALSE(func.invoke(instance, entt::meta_any{'c'}));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncCastAndConvert) {
|
|
|
auto func = entt::resolve<func_type>().func("f3"_hs);
|
|
|
- auto any = func.invoke(func_type{}, derived_type{}, 0, 3.);
|
|
|
+ func_type instance;
|
|
|
+
|
|
|
+ auto any = func.invoke(instance, derived_type{}, 0, 3.);
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
ASSERT_EQ(any.type(), entt::resolve<int>());
|
|
|
@@ -1640,7 +1706,7 @@ TEST_F(Meta, MetaTypeConstruct) {
|
|
|
auto any = type.construct(base_type{}, 42, 'c');
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
}
|
|
|
@@ -1650,7 +1716,7 @@ TEST_F(Meta, MetaTypeConstructMetaAnyArgs) {
|
|
|
auto any = type.construct(entt::meta_any{base_type{}}, entt::meta_any{42}, entt::meta_any{'c'});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
}
|
|
|
@@ -1672,42 +1738,46 @@ TEST_F(Meta, MetaTypeConstructCastAndConvert) {
|
|
|
auto any = type.construct(entt::meta_any{derived_type{}}, entt::meta_any{42.}, entt::meta_any{'c'});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_TRUE(any.can_cast<derived_type>());
|
|
|
+ ASSERT_TRUE(any.try_cast<derived_type>());
|
|
|
ASSERT_EQ(any.cast<derived_type>().i, 42);
|
|
|
ASSERT_EQ(any.cast<derived_type>().c, 'c');
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeDestroyDtor) {
|
|
|
auto type = entt::resolve<empty_type>();
|
|
|
+ empty_type instance;
|
|
|
|
|
|
ASSERT_EQ(empty_type::counter, 0);
|
|
|
- ASSERT_TRUE(type.destroy(empty_type{}));
|
|
|
+ ASSERT_TRUE(type.destroy(instance));
|
|
|
ASSERT_EQ(empty_type::counter, 1);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeDestroyDtorInvalidArg) {
|
|
|
auto type = entt::resolve<empty_type>();
|
|
|
+ auto instance = 'c';
|
|
|
|
|
|
ASSERT_EQ(empty_type::counter, 0);
|
|
|
- ASSERT_FALSE(type.destroy('c'));
|
|
|
+ ASSERT_FALSE(type.destroy(instance));
|
|
|
ASSERT_EQ(empty_type::counter, 0);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeDestroyDtorCastAndConvert) {
|
|
|
auto type = entt::resolve<empty_type>();
|
|
|
+ fat_type instance{};
|
|
|
|
|
|
ASSERT_EQ(empty_type::counter, 0);
|
|
|
- ASSERT_FALSE(type.destroy(fat_type{}));
|
|
|
+ ASSERT_FALSE(type.destroy(instance));
|
|
|
ASSERT_EQ(empty_type::counter, 0);
|
|
|
- ASSERT_FALSE(entt::resolve<int>().destroy(42.));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeDestroyNoDtor) {
|
|
|
- ASSERT_TRUE(entt::resolve<char>().destroy('c'));
|
|
|
+ auto instance = 'c';
|
|
|
+ ASSERT_TRUE(entt::resolve<char>().destroy(instance));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeDestroyNoDtorInvalidArg) {
|
|
|
- ASSERT_FALSE(entt::resolve<char>().destroy(42));
|
|
|
+ auto instance = 42;
|
|
|
+ ASSERT_FALSE(entt::resolve<char>().destroy(instance));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeDestroyNoDtorVoid) {
|
|
|
@@ -1715,7 +1785,8 @@ TEST_F(Meta, MetaTypeDestroyNoDtorVoid) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeDestroyNoDtorCastAndConvert) {
|
|
|
- ASSERT_FALSE(entt::resolve<int>().destroy(42.));
|
|
|
+ auto instance = 42.;
|
|
|
+ ASSERT_FALSE(entt::resolve<int>().destroy(instance));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataFromBase) {
|
|
|
@@ -1853,8 +1924,8 @@ TEST_F(Meta, Unregister) {
|
|
|
entt::meta_any any{42.};
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
- ASSERT_FALSE(any.can_convert<int>());
|
|
|
- ASSERT_TRUE(any.can_convert<float>());
|
|
|
+ ASSERT_FALSE(any.convert<int>());
|
|
|
+ ASSERT_TRUE(any.convert<float>());
|
|
|
|
|
|
ASSERT_FALSE(entt::resolve("derived"_hs));
|
|
|
ASSERT_TRUE(entt::resolve("my_type"_hs));
|