|
|
@@ -130,77 +130,77 @@ struct Meta: public ::testing::Test {
|
|
|
static void SetUpTestCase() {
|
|
|
entt::reflect<double>().conv<int>();
|
|
|
|
|
|
- entt::reflect<char>("char", std::make_pair(properties::prop_int, 42));
|
|
|
+ entt::reflect<char>("char"_hs, std::make_pair(properties::prop_int, 42));
|
|
|
|
|
|
entt::reflect<properties>()
|
|
|
- .data<properties::prop_bool>("prop_bool")
|
|
|
- .data<properties::prop_int>("prop_int");
|
|
|
+ .data<properties::prop_bool>("prop_bool"_hs)
|
|
|
+ .data<properties::prop_int>("prop_int"_hs);
|
|
|
|
|
|
- entt::reflect<unsigned int>().data<0u>("min").data<100u>("max");
|
|
|
+ entt::reflect<unsigned int>().data<0u>("min"_hs).data<100u>("max"_hs);
|
|
|
|
|
|
- entt::reflect<base_type>("base");
|
|
|
+ entt::reflect<base_type>("base"_hs);
|
|
|
|
|
|
- entt::reflect<derived_type>("derived", std::make_pair(properties::prop_int, 99))
|
|
|
+ entt::reflect<derived_type>("derived"_hs, std::make_pair(properties::prop_int, 99))
|
|
|
.base<base_type>()
|
|
|
.ctor<const base_type &, int, char>(std::make_pair(properties::prop_bool, false))
|
|
|
.ctor<&derived_factory>(std::make_pair(properties::prop_int, 42));
|
|
|
|
|
|
- entt::reflect<empty_type>("empty")
|
|
|
+ entt::reflect<empty_type>("empty"_hs)
|
|
|
.dtor<&empty_type::destroy>();
|
|
|
|
|
|
- entt::reflect<fat_type>("fat")
|
|
|
+ entt::reflect<fat_type>("fat"_hs)
|
|
|
.base<empty_type>()
|
|
|
.dtor<&fat_type::destroy>();
|
|
|
|
|
|
- entt::reflect<data_type>("data")
|
|
|
- .data<&data_type::i>("i", std::make_pair(properties::prop_int, 0))
|
|
|
- .data<&data_type::j>("j", std::make_pair(properties::prop_int, 1))
|
|
|
- .data<&data_type::h>("h", std::make_pair(properties::prop_int, 2))
|
|
|
- .data<&data_type::k>("k", std::make_pair(properties::prop_int, 3))
|
|
|
- .data<&data_type::empty>("empty");
|
|
|
-
|
|
|
- entt::reflect<array_type>("array")
|
|
|
- .data<&array_type::global>("global")
|
|
|
- .data<&array_type::local>("local");
|
|
|
-
|
|
|
- entt::reflect<func_type>("func")
|
|
|
- .func<entt::overload<int(const base_type &, int, int)>(&func_type::f)>("f3")
|
|
|
- .func<entt::overload<int(int, int)>(&func_type::f)>("f2", std::make_pair(properties::prop_bool, false))
|
|
|
- .func<entt::overload<int(int) const>(&func_type::f)>("f1", std::make_pair(properties::prop_bool, false))
|
|
|
- .func<&func_type::g>("g", std::make_pair(properties::prop_bool, false))
|
|
|
- .func<&func_type::h>("h", std::make_pair(properties::prop_bool, false))
|
|
|
- .func<&func_type::k>("k", std::make_pair(properties::prop_bool, false));
|
|
|
-
|
|
|
- entt::reflect<setter_getter_type>("setter_getter")
|
|
|
- .data<&setter_getter_type::static_setter, &setter_getter_type::static_getter>("x")
|
|
|
- .data<&setter_getter_type::setter, &setter_getter_type::getter>("y")
|
|
|
- .data<&setter_getter_type::static_setter, &setter_getter_type::getter>("z")
|
|
|
- .data<&setter_getter_type::setter_with_ref, &setter_getter_type::getter_with_ref>("w");
|
|
|
-
|
|
|
- entt::reflect<an_abstract_type>("an_abstract_type", std::make_pair(properties::prop_bool, false))
|
|
|
- .data<&an_abstract_type::i>("i")
|
|
|
- .func<&an_abstract_type::f>("f")
|
|
|
- .func<&an_abstract_type::g>("g");
|
|
|
-
|
|
|
- entt::reflect<another_abstract_type>("another_abstract_type", std::make_pair(properties::prop_int, 42))
|
|
|
- .data<&another_abstract_type::j>("j")
|
|
|
- .func<&another_abstract_type::h>("h");
|
|
|
-
|
|
|
- entt::reflect<concrete_type>("concrete")
|
|
|
+ entt::reflect<data_type>("data"_hs)
|
|
|
+ .data<&data_type::i>("i"_hs, std::make_pair(properties::prop_int, 0))
|
|
|
+ .data<&data_type::j>("j"_hs, std::make_pair(properties::prop_int, 1))
|
|
|
+ .data<&data_type::h>("h"_hs, std::make_pair(properties::prop_int, 2))
|
|
|
+ .data<&data_type::k>("k"_hs, std::make_pair(properties::prop_int, 3))
|
|
|
+ .data<&data_type::empty>("empty"_hs);
|
|
|
+
|
|
|
+ entt::reflect<array_type>("array"_hs)
|
|
|
+ .data<&array_type::global>("global"_hs)
|
|
|
+ .data<&array_type::local>("local"_hs);
|
|
|
+
|
|
|
+ entt::reflect<func_type>("func"_hs)
|
|
|
+ .func<entt::overload<int(const base_type &, int, int)>(&func_type::f)>("f3"_hs)
|
|
|
+ .func<entt::overload<int(int, int)>(&func_type::f)>("f2"_hs, std::make_pair(properties::prop_bool, false))
|
|
|
+ .func<entt::overload<int(int) const>(&func_type::f)>("f1"_hs, std::make_pair(properties::prop_bool, false))
|
|
|
+ .func<&func_type::g>("g"_hs, std::make_pair(properties::prop_bool, false))
|
|
|
+ .func<&func_type::h>("h"_hs, std::make_pair(properties::prop_bool, false))
|
|
|
+ .func<&func_type::k>("k"_hs, std::make_pair(properties::prop_bool, false));
|
|
|
+
|
|
|
+ entt::reflect<setter_getter_type>("setter_getter"_hs)
|
|
|
+ .data<&setter_getter_type::static_setter, &setter_getter_type::static_getter>("x"_hs)
|
|
|
+ .data<&setter_getter_type::setter, &setter_getter_type::getter>("y"_hs)
|
|
|
+ .data<&setter_getter_type::static_setter, &setter_getter_type::getter>("z"_hs)
|
|
|
+ .data<&setter_getter_type::setter_with_ref, &setter_getter_type::getter_with_ref>("w"_hs);
|
|
|
+
|
|
|
+ entt::reflect<an_abstract_type>("an_abstract_type"_hs, std::make_pair(properties::prop_bool, false))
|
|
|
+ .data<&an_abstract_type::i>("i"_hs)
|
|
|
+ .func<&an_abstract_type::f>("f"_hs)
|
|
|
+ .func<&an_abstract_type::g>("g"_hs);
|
|
|
+
|
|
|
+ entt::reflect<another_abstract_type>("another_abstract_type"_hs, std::make_pair(properties::prop_int, 42))
|
|
|
+ .data<&another_abstract_type::j>("j"_hs)
|
|
|
+ .func<&another_abstract_type::h>("h"_hs);
|
|
|
+
|
|
|
+ entt::reflect<concrete_type>("concrete"_hs)
|
|
|
.base<an_abstract_type>()
|
|
|
.base<another_abstract_type>()
|
|
|
- .func<&concrete_type::f>("f");
|
|
|
+ .func<&concrete_type::f>("f"_hs);
|
|
|
}
|
|
|
|
|
|
static void SetUpAfterUnregistration() {
|
|
|
entt::reflect<double>().conv<float>();
|
|
|
|
|
|
- entt::reflect<derived_type>("my_type", std::make_pair(properties::prop_bool, false))
|
|
|
+ entt::reflect<derived_type>("my_type"_hs, std::make_pair(properties::prop_bool, false))
|
|
|
.ctor<>();
|
|
|
|
|
|
- entt::reflect<another_abstract_type>("your_type")
|
|
|
- .data<&another_abstract_type::j>("a_data_member")
|
|
|
- .func<&another_abstract_type::h>("a_member_function");
|
|
|
+ entt::reflect<another_abstract_type>("your_type"_hs)
|
|
|
+ .data<&another_abstract_type::j>("a_data_member"_hs)
|
|
|
+ .func<&another_abstract_type::h>("a_member_function"_hs);
|
|
|
}
|
|
|
|
|
|
void SetUp() override {
|
|
|
@@ -210,7 +210,7 @@ struct Meta: public ::testing::Test {
|
|
|
};
|
|
|
|
|
|
TEST_F(Meta, Resolve) {
|
|
|
- ASSERT_EQ(entt::resolve<derived_type>(), entt::resolve("derived"));
|
|
|
+ ASSERT_EQ(entt::resolve<derived_type>(), entt::resolve("derived"_hs));
|
|
|
|
|
|
bool found = false;
|
|
|
|
|
|
@@ -621,12 +621,12 @@ TEST_F(Meta, MetaProp) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaBase) {
|
|
|
- auto base = entt::resolve<derived_type>().base("base");
|
|
|
+ auto base = entt::resolve<derived_type>().base("base"_hs);
|
|
|
derived_type derived{};
|
|
|
|
|
|
ASSERT_TRUE(base);
|
|
|
ASSERT_NE(base, entt::meta_base{});
|
|
|
- ASSERT_EQ(base.parent(), entt::resolve("derived"));
|
|
|
+ ASSERT_EQ(base.parent(), entt::resolve("derived"_hs));
|
|
|
ASSERT_EQ(base.type(), entt::resolve<base_type>());
|
|
|
ASSERT_EQ(base.cast(&derived), static_cast<base_type *>(&derived));
|
|
|
}
|
|
|
@@ -652,7 +652,7 @@ TEST_F(Meta, MetaCtor) {
|
|
|
|
|
|
ASSERT_TRUE(ctor);
|
|
|
ASSERT_NE(ctor, entt::meta_ctor{});
|
|
|
- ASSERT_EQ(ctor.parent(), entt::resolve("derived"));
|
|
|
+ ASSERT_EQ(ctor.parent(), entt::resolve("derived"_hs));
|
|
|
ASSERT_EQ(ctor.size(), entt::meta_ctor::size_type{3});
|
|
|
ASSERT_EQ(ctor.arg(entt::meta_ctor::size_type{0}), entt::resolve<base_type>());
|
|
|
ASSERT_EQ(ctor.arg(entt::meta_ctor::size_type{1}), entt::resolve<int>());
|
|
|
@@ -687,7 +687,7 @@ TEST_F(Meta, MetaCtorFunc) {
|
|
|
auto ctor = entt::resolve<derived_type>().ctor<const base_type &, int>();
|
|
|
|
|
|
ASSERT_TRUE(ctor);
|
|
|
- ASSERT_EQ(ctor.parent(), entt::resolve("derived"));
|
|
|
+ ASSERT_EQ(ctor.parent(), entt::resolve("derived"_hs));
|
|
|
ASSERT_EQ(ctor.size(), entt::meta_ctor::size_type{2});
|
|
|
ASSERT_EQ(ctor.arg(entt::meta_ctor::size_type{0}), entt::resolve<base_type>());
|
|
|
ASSERT_EQ(ctor.arg(entt::meta_ctor::size_type{1}), entt::resolve<int>());
|
|
|
@@ -773,7 +773,7 @@ TEST_F(Meta, MetaDtor) {
|
|
|
|
|
|
ASSERT_TRUE(dtor);
|
|
|
ASSERT_NE(dtor, entt::meta_dtor{});
|
|
|
- ASSERT_EQ(dtor.parent(), entt::resolve("empty"));
|
|
|
+ ASSERT_EQ(dtor.parent(), entt::resolve("empty"_hs));
|
|
|
ASSERT_EQ(empty_type::counter, 0);
|
|
|
ASSERT_TRUE(dtor.invoke(empty));
|
|
|
ASSERT_EQ(empty_type::counter, 1);
|
|
|
@@ -794,14 +794,14 @@ TEST_F(Meta, MetaDtorMetaAnyInvalidArg) {
|
|
|
|
|
|
|
|
|
TEST_F(Meta, MetaData) {
|
|
|
- auto data = entt::resolve<data_type>().data("i");
|
|
|
+ auto data = entt::resolve<data_type>().data("i"_hs);
|
|
|
data_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
ASSERT_NE(data, entt::meta_data{});
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("data"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("data"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "i");
|
|
|
+ ASSERT_EQ(data.identifier(), "i"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_FALSE(data.is_static());
|
|
|
ASSERT_EQ(data.get(instance).cast<int>(), 0);
|
|
|
@@ -824,13 +824,13 @@ TEST_F(Meta, MetaData) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataConst) {
|
|
|
- auto data = entt::resolve<data_type>().data("j");
|
|
|
+ auto data = entt::resolve<data_type>().data("j"_hs);
|
|
|
data_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("data"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("data"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "j");
|
|
|
+ ASSERT_EQ(data.identifier(), "j"_hs);
|
|
|
ASSERT_TRUE(data.is_const());
|
|
|
ASSERT_FALSE(data.is_static());
|
|
|
ASSERT_EQ(data.get(instance).cast<int>(), 1);
|
|
|
@@ -853,12 +853,12 @@ TEST_F(Meta, MetaDataConst) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataStatic) {
|
|
|
- auto data = entt::resolve<data_type>().data("h");
|
|
|
+ auto data = entt::resolve<data_type>().data("h"_hs);
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("data"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("data"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "h");
|
|
|
+ ASSERT_EQ(data.identifier(), "h"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_TRUE(data.is_static());
|
|
|
ASSERT_EQ(data.get({}).cast<int>(), 2);
|
|
|
@@ -881,12 +881,12 @@ TEST_F(Meta, MetaDataStatic) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataConstStatic) {
|
|
|
- auto data = entt::resolve<data_type>().data("k");
|
|
|
+ auto data = entt::resolve<data_type>().data("k"_hs);
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("data"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("data"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "k");
|
|
|
+ ASSERT_EQ(data.identifier(), "k"_hs);
|
|
|
ASSERT_TRUE(data.is_const());
|
|
|
ASSERT_TRUE(data.is_static());
|
|
|
ASSERT_EQ(data.get({}).cast<int>(), 3);
|
|
|
@@ -909,7 +909,7 @@ TEST_F(Meta, MetaDataConstStatic) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataGetMetaAnyArg) {
|
|
|
- auto data = entt::resolve<data_type>().data("i");
|
|
|
+ auto data = entt::resolve<data_type>().data("i"_hs);
|
|
|
entt::meta_any any{data_type{}};
|
|
|
any.cast<data_type>().i = 99;
|
|
|
const auto value = data.get(any);
|
|
|
@@ -920,11 +920,11 @@ TEST_F(Meta, MetaDataGetMetaAnyArg) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataGetInvalidArg) {
|
|
|
- ASSERT_FALSE(entt::resolve<data_type>().data("i").get(0));
|
|
|
+ ASSERT_FALSE(entt::resolve<data_type>().data("i"_hs).get(0));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetMetaAnyArg) {
|
|
|
- auto data = entt::resolve<data_type>().data("i");
|
|
|
+ auto data = entt::resolve<data_type>().data("i"_hs);
|
|
|
entt::meta_any any{data_type{}};
|
|
|
entt::meta_any value{42};
|
|
|
|
|
|
@@ -934,11 +934,11 @@ TEST_F(Meta, MetaDataSetMetaAnyArg) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetInvalidArg) {
|
|
|
- ASSERT_FALSE(entt::resolve<data_type>().data("i").set({}, 'c'));
|
|
|
+ ASSERT_FALSE(entt::resolve<data_type>().data("i"_hs).set({}, 'c'));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetCast) {
|
|
|
- auto data = entt::resolve<data_type>().data("empty");
|
|
|
+ auto data = entt::resolve<data_type>().data("empty"_hs);
|
|
|
data_type instance{};
|
|
|
|
|
|
ASSERT_EQ(empty_type::counter, 0);
|
|
|
@@ -947,7 +947,7 @@ TEST_F(Meta, MetaDataSetCast) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetConvert) {
|
|
|
- auto data = entt::resolve<data_type>().data("i");
|
|
|
+ auto data = entt::resolve<data_type>().data("i"_hs);
|
|
|
data_type instance{};
|
|
|
|
|
|
ASSERT_EQ(instance.i, 0);
|
|
|
@@ -956,14 +956,14 @@ TEST_F(Meta, MetaDataSetConvert) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetterGetterAsFreeFunctions) {
|
|
|
- auto data = entt::resolve<setter_getter_type>().data("x");
|
|
|
+ auto data = entt::resolve<setter_getter_type>().data("x"_hs);
|
|
|
setter_getter_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
ASSERT_NE(data, entt::meta_data{});
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("setter_getter"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("setter_getter"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "x");
|
|
|
+ ASSERT_EQ(data.identifier(), "x"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_FALSE(data.is_static());
|
|
|
ASSERT_EQ(data.get(instance).cast<int>(), 0);
|
|
|
@@ -972,14 +972,14 @@ TEST_F(Meta, MetaDataSetterGetterAsFreeFunctions) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetterGetterAsMemberFunctions) {
|
|
|
- auto data = entt::resolve<setter_getter_type>().data("y");
|
|
|
+ auto data = entt::resolve<setter_getter_type>().data("y"_hs);
|
|
|
setter_getter_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
ASSERT_NE(data, entt::meta_data{});
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("setter_getter"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("setter_getter"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "y");
|
|
|
+ ASSERT_EQ(data.identifier(), "y"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_FALSE(data.is_static());
|
|
|
ASSERT_EQ(data.get(instance).cast<int>(), 0);
|
|
|
@@ -988,14 +988,14 @@ TEST_F(Meta, MetaDataSetterGetterAsMemberFunctions) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetterGetterWithRefAsMemberFunctions) {
|
|
|
- auto data = entt::resolve<setter_getter_type>().data("w");
|
|
|
+ auto data = entt::resolve<setter_getter_type>().data("w"_hs);
|
|
|
setter_getter_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
ASSERT_NE(data, entt::meta_data{});
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("setter_getter"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("setter_getter"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "w");
|
|
|
+ ASSERT_EQ(data.identifier(), "w"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_FALSE(data.is_static());
|
|
|
ASSERT_EQ(data.get(instance).cast<int>(), 0);
|
|
|
@@ -1004,14 +1004,14 @@ TEST_F(Meta, MetaDataSetterGetterWithRefAsMemberFunctions) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataSetterGetterMixed) {
|
|
|
- auto data = entt::resolve<setter_getter_type>().data("z");
|
|
|
+ auto data = entt::resolve<setter_getter_type>().data("z"_hs);
|
|
|
setter_getter_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
ASSERT_NE(data, entt::meta_data{});
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("setter_getter"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("setter_getter"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int>());
|
|
|
- ASSERT_STREQ(data.name(), "z");
|
|
|
+ ASSERT_EQ(data.identifier(), "z"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_FALSE(data.is_static());
|
|
|
ASSERT_EQ(data.get(instance).cast<int>(), 0);
|
|
|
@@ -1020,7 +1020,7 @@ TEST_F(Meta, MetaDataSetterGetterMixed) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataArrayStatic) {
|
|
|
- auto data = entt::resolve<array_type>().data("global");
|
|
|
+ auto data = entt::resolve<array_type>().data("global"_hs);
|
|
|
|
|
|
array_type::global[0] = 3;
|
|
|
array_type::global[1] = 5;
|
|
|
@@ -1028,9 +1028,9 @@ TEST_F(Meta, MetaDataArrayStatic) {
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
ASSERT_NE(data, entt::meta_data{});
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("array"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("array"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int[3]>());
|
|
|
- ASSERT_STREQ(data.name(), "global");
|
|
|
+ ASSERT_EQ(data.identifier(), "global"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_TRUE(data.is_static());
|
|
|
ASSERT_TRUE(data.type().is_array());
|
|
|
@@ -1049,7 +1049,7 @@ TEST_F(Meta, MetaDataArrayStatic) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaDataArray) {
|
|
|
- auto data = entt::resolve<array_type>().data("local");
|
|
|
+ auto data = entt::resolve<array_type>().data("local"_hs);
|
|
|
array_type instance;
|
|
|
|
|
|
instance.local[0] = 3;
|
|
|
@@ -1058,9 +1058,9 @@ TEST_F(Meta, MetaDataArray) {
|
|
|
|
|
|
ASSERT_TRUE(data);
|
|
|
ASSERT_NE(data, entt::meta_data{});
|
|
|
- ASSERT_EQ(data.parent(), entt::resolve("array"));
|
|
|
+ ASSERT_EQ(data.parent(), entt::resolve("array"_hs));
|
|
|
ASSERT_EQ(data.type(), entt::resolve<int[3]>());
|
|
|
- ASSERT_STREQ(data.name(), "local");
|
|
|
+ ASSERT_EQ(data.identifier(), "local"_hs);
|
|
|
ASSERT_FALSE(data.is_const());
|
|
|
ASSERT_FALSE(data.is_static());
|
|
|
ASSERT_TRUE(data.type().is_array());
|
|
|
@@ -1079,13 +1079,13 @@ TEST_F(Meta, MetaDataArray) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFunc) {
|
|
|
- auto func = entt::resolve<func_type>().func("f2");
|
|
|
+ auto func = entt::resolve<func_type>().func("f2"_hs);
|
|
|
func_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(func);
|
|
|
ASSERT_NE(func, entt::meta_func{});
|
|
|
- ASSERT_EQ(func.parent(), entt::resolve("func"));
|
|
|
- ASSERT_STREQ(func.name(), "f2");
|
|
|
+ ASSERT_EQ(func.parent(), entt::resolve("func"_hs));
|
|
|
+ ASSERT_EQ(func.identifier(), "f2"_hs);
|
|
|
ASSERT_EQ(func.size(), entt::meta_func::size_type{2});
|
|
|
ASSERT_FALSE(func.is_const());
|
|
|
ASSERT_FALSE(func.is_static());
|
|
|
@@ -1119,12 +1119,12 @@ TEST_F(Meta, MetaFunc) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncConst) {
|
|
|
- auto func = entt::resolve<func_type>().func("f1");
|
|
|
+ auto func = entt::resolve<func_type>().func("f1"_hs);
|
|
|
func_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(func);
|
|
|
- ASSERT_EQ(func.parent(), entt::resolve("func"));
|
|
|
- ASSERT_STREQ(func.name(), "f1");
|
|
|
+ ASSERT_EQ(func.parent(), entt::resolve("func"_hs));
|
|
|
+ ASSERT_EQ(func.identifier(), "f1"_hs);
|
|
|
ASSERT_EQ(func.size(), entt::meta_func::size_type{1});
|
|
|
ASSERT_TRUE(func.is_const());
|
|
|
ASSERT_FALSE(func.is_static());
|
|
|
@@ -1156,12 +1156,12 @@ TEST_F(Meta, MetaFuncConst) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncRetVoid) {
|
|
|
- auto func = entt::resolve<func_type>().func("g");
|
|
|
+ auto func = entt::resolve<func_type>().func("g"_hs);
|
|
|
func_type instance{};
|
|
|
|
|
|
ASSERT_TRUE(func);
|
|
|
- ASSERT_EQ(func.parent(), entt::resolve("func"));
|
|
|
- ASSERT_STREQ(func.name(), "g");
|
|
|
+ ASSERT_EQ(func.parent(), entt::resolve("func"_hs));
|
|
|
+ ASSERT_EQ(func.identifier(), "g"_hs);
|
|
|
ASSERT_EQ(func.size(), entt::meta_func::size_type{1});
|
|
|
ASSERT_FALSE(func.is_const());
|
|
|
ASSERT_FALSE(func.is_static());
|
|
|
@@ -1190,11 +1190,11 @@ TEST_F(Meta, MetaFuncRetVoid) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncStatic) {
|
|
|
- auto func = entt::resolve<func_type>().func("h");
|
|
|
+ auto func = entt::resolve<func_type>().func("h"_hs);
|
|
|
|
|
|
ASSERT_TRUE(func);
|
|
|
- ASSERT_EQ(func.parent(), entt::resolve("func"));
|
|
|
- ASSERT_STREQ(func.name(), "h");
|
|
|
+ ASSERT_EQ(func.parent(), entt::resolve("func"_hs));
|
|
|
+ ASSERT_EQ(func.identifier(), "h"_hs);
|
|
|
ASSERT_EQ(func.size(), entt::meta_func::size_type{1});
|
|
|
ASSERT_FALSE(func.is_const());
|
|
|
ASSERT_TRUE(func.is_static());
|
|
|
@@ -1226,11 +1226,11 @@ TEST_F(Meta, MetaFuncStatic) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncStaticRetVoid) {
|
|
|
- auto func = entt::resolve<func_type>().func("k");
|
|
|
+ auto func = entt::resolve<func_type>().func("k"_hs);
|
|
|
|
|
|
ASSERT_TRUE(func);
|
|
|
- ASSERT_EQ(func.parent(), entt::resolve("func"));
|
|
|
- ASSERT_STREQ(func.name(), "k");
|
|
|
+ ASSERT_EQ(func.parent(), entt::resolve("func"_hs));
|
|
|
+ ASSERT_EQ(func.identifier(), "k"_hs);
|
|
|
ASSERT_EQ(func.size(), entt::meta_func::size_type{1});
|
|
|
ASSERT_FALSE(func.is_const());
|
|
|
ASSERT_TRUE(func.is_static());
|
|
|
@@ -1259,7 +1259,7 @@ TEST_F(Meta, MetaFuncStaticRetVoid) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncMetaAnyArgs) {
|
|
|
- auto func = entt::resolve<func_type>().func("f1");
|
|
|
+ auto func = entt::resolve<func_type>().func("f1"_hs);
|
|
|
auto any = func.invoke(func_type{}, entt::meta_any{3});
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
@@ -1268,12 +1268,12 @@ TEST_F(Meta, MetaFuncMetaAnyArgs) {
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncInvalidArgs) {
|
|
|
- auto func = entt::resolve<func_type>().func("f1");
|
|
|
+ auto func = entt::resolve<func_type>().func("f1"_hs);
|
|
|
ASSERT_FALSE(func.invoke(empty_type{}, entt::meta_any{'c'}));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaFuncCastAndConvert) {
|
|
|
- auto func = entt::resolve<func_type>().func("f3");
|
|
|
+ auto func = entt::resolve<func_type>().func("f3"_hs);
|
|
|
auto any = func.invoke(func_type{}, derived_type{}, 0, 3.);
|
|
|
|
|
|
ASSERT_TRUE(any);
|
|
|
@@ -1286,7 +1286,7 @@ TEST_F(Meta, MetaType) {
|
|
|
|
|
|
ASSERT_TRUE(type);
|
|
|
ASSERT_NE(type, entt::meta_type{});
|
|
|
- ASSERT_STREQ(type.name(), "derived");
|
|
|
+ ASSERT_EQ(type.identifier(), "derived"_hs);
|
|
|
|
|
|
type.prop([](auto prop) {
|
|
|
ASSERT_TRUE(prop);
|
|
|
@@ -1332,7 +1332,7 @@ TEST_F(Meta, MetaTypeBase) {
|
|
|
});
|
|
|
|
|
|
ASSERT_TRUE(iterate);
|
|
|
- ASSERT_EQ(type.base("base").type(), entt::resolve<base_type>());
|
|
|
+ ASSERT_EQ(type.base("base"_hs).type(), entt::resolve<base_type>());
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeConv) {
|
|
|
@@ -1379,7 +1379,7 @@ TEST_F(Meta, MetaTypeData) {
|
|
|
});
|
|
|
|
|
|
ASSERT_EQ(counter, 5);
|
|
|
- ASSERT_TRUE(type.data("i"));
|
|
|
+ ASSERT_TRUE(type.data("i"_hs));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeFunc) {
|
|
|
@@ -1391,7 +1391,7 @@ TEST_F(Meta, MetaTypeFunc) {
|
|
|
});
|
|
|
|
|
|
ASSERT_EQ(counter, 6);
|
|
|
- ASSERT_TRUE(type.func("f1"));
|
|
|
+ ASSERT_TRUE(type.func("f1"_hs));
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, MetaTypeConstruct) {
|
|
|
@@ -1475,13 +1475,13 @@ TEST_F(Meta, MetaDataFromBase) {
|
|
|
auto type = entt::resolve<concrete_type>();
|
|
|
concrete_type instance;
|
|
|
|
|
|
- ASSERT_TRUE(type.data("i"));
|
|
|
- ASSERT_TRUE(type.data("j"));
|
|
|
+ ASSERT_TRUE(type.data("i"_hs));
|
|
|
+ ASSERT_TRUE(type.data("j"_hs));
|
|
|
|
|
|
ASSERT_EQ(instance.i, 0);
|
|
|
ASSERT_EQ(instance.j, char{});
|
|
|
- ASSERT_TRUE(type.data("i").set(instance, 3));
|
|
|
- ASSERT_TRUE(type.data("j").set(instance, 'c'));
|
|
|
+ ASSERT_TRUE(type.data("i"_hs).set(instance, 3));
|
|
|
+ ASSERT_TRUE(type.data("j"_hs).set(instance, 'c'));
|
|
|
ASSERT_EQ(instance.i, 3);
|
|
|
ASSERT_EQ(instance.j, 'c');
|
|
|
}
|
|
|
@@ -1491,24 +1491,24 @@ TEST_F(Meta, MetaFuncFromBase) {
|
|
|
auto base = entt::resolve<an_abstract_type>();
|
|
|
concrete_type instance;
|
|
|
|
|
|
- ASSERT_TRUE(type.func("f"));
|
|
|
- ASSERT_TRUE(type.func("g"));
|
|
|
- ASSERT_TRUE(type.func("h"));
|
|
|
+ ASSERT_TRUE(type.func("f"_hs));
|
|
|
+ ASSERT_TRUE(type.func("g"_hs));
|
|
|
+ ASSERT_TRUE(type.func("h"_hs));
|
|
|
|
|
|
- ASSERT_EQ(type.func("f").parent(), entt::resolve<concrete_type>());
|
|
|
- ASSERT_EQ(type.func("g").parent(), entt::resolve<an_abstract_type>());
|
|
|
- ASSERT_EQ(type.func("h").parent(), entt::resolve<another_abstract_type>());
|
|
|
+ ASSERT_EQ(type.func("f"_hs).parent(), entt::resolve<concrete_type>());
|
|
|
+ ASSERT_EQ(type.func("g"_hs).parent(), entt::resolve<an_abstract_type>());
|
|
|
+ ASSERT_EQ(type.func("h"_hs).parent(), entt::resolve<another_abstract_type>());
|
|
|
|
|
|
ASSERT_EQ(instance.i, 0);
|
|
|
ASSERT_EQ(instance.j, char{});
|
|
|
|
|
|
- type.func("f").invoke(instance, 3);
|
|
|
- type.func("h").invoke(instance, 'c');
|
|
|
+ type.func("f"_hs).invoke(instance, 3);
|
|
|
+ type.func("h"_hs).invoke(instance, 'c');
|
|
|
|
|
|
ASSERT_EQ(instance.i, 9);
|
|
|
ASSERT_EQ(instance.j, 'c');
|
|
|
|
|
|
- base.func("g").invoke(instance, 3);
|
|
|
+ base.func("g"_hs).invoke(instance, 3);
|
|
|
|
|
|
ASSERT_EQ(instance.i, -3);
|
|
|
}
|
|
|
@@ -1531,11 +1531,11 @@ TEST_F(Meta, AbstractClass) {
|
|
|
|
|
|
ASSERT_EQ(instance.i, 0);
|
|
|
|
|
|
- type.func("f").invoke(instance, 3);
|
|
|
+ type.func("f"_hs).invoke(instance, 3);
|
|
|
|
|
|
ASSERT_EQ(instance.i, 3);
|
|
|
|
|
|
- type.func("g").invoke(instance, 3);
|
|
|
+ type.func("g"_hs).invoke(instance, 3);
|
|
|
|
|
|
ASSERT_EQ(instance.i, -3);
|
|
|
}
|
|
|
@@ -1543,33 +1543,33 @@ TEST_F(Meta, AbstractClass) {
|
|
|
TEST_F(Meta, EnumAndNamedConstants) {
|
|
|
auto type = entt::resolve<properties>();
|
|
|
|
|
|
- ASSERT_TRUE(type.data("prop_bool"));
|
|
|
- ASSERT_TRUE(type.data("prop_int"));
|
|
|
+ ASSERT_TRUE(type.data("prop_bool"_hs));
|
|
|
+ ASSERT_TRUE(type.data("prop_int"_hs));
|
|
|
|
|
|
- ASSERT_EQ(type.data("prop_bool").type(), type);
|
|
|
- ASSERT_EQ(type.data("prop_int").type(), type);
|
|
|
+ ASSERT_EQ(type.data("prop_bool"_hs).type(), type);
|
|
|
+ ASSERT_EQ(type.data("prop_int"_hs).type(), type);
|
|
|
|
|
|
- ASSERT_FALSE(type.data("prop_bool").set({}, properties::prop_int));
|
|
|
- ASSERT_FALSE(type.data("prop_int").set({}, properties::prop_bool));
|
|
|
+ ASSERT_FALSE(type.data("prop_bool"_hs).set({}, properties::prop_int));
|
|
|
+ ASSERT_FALSE(type.data("prop_int"_hs).set({}, properties::prop_bool));
|
|
|
|
|
|
- ASSERT_EQ(type.data("prop_bool").get({}).cast<properties>(), properties::prop_bool);
|
|
|
- ASSERT_EQ(type.data("prop_int").get({}).cast<properties>(), properties::prop_int);
|
|
|
+ ASSERT_EQ(type.data("prop_bool"_hs).get({}).cast<properties>(), properties::prop_bool);
|
|
|
+ ASSERT_EQ(type.data("prop_int"_hs).get({}).cast<properties>(), properties::prop_int);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, ArithmeticTypeAndNamedConstants) {
|
|
|
auto type = entt::resolve<unsigned int>();
|
|
|
|
|
|
- ASSERT_TRUE(type.data("min"));
|
|
|
- ASSERT_TRUE(type.data("max"));
|
|
|
+ ASSERT_TRUE(type.data("min"_hs));
|
|
|
+ ASSERT_TRUE(type.data("max"_hs));
|
|
|
|
|
|
- ASSERT_EQ(type.data("min").type(), type);
|
|
|
- ASSERT_EQ(type.data("max").type(), type);
|
|
|
+ ASSERT_EQ(type.data("min"_hs).type(), type);
|
|
|
+ ASSERT_EQ(type.data("max"_hs).type(), type);
|
|
|
|
|
|
- ASSERT_FALSE(type.data("min").set({}, 100u));
|
|
|
- ASSERT_FALSE(type.data("max").set({}, 0u));
|
|
|
+ ASSERT_FALSE(type.data("min"_hs).set({}, 100u));
|
|
|
+ ASSERT_FALSE(type.data("max"_hs).set({}, 0u));
|
|
|
|
|
|
- ASSERT_EQ(type.data("min").get({}).cast<unsigned int>(), 0u);
|
|
|
- ASSERT_EQ(type.data("max").get({}).cast<unsigned int>(), 100u);
|
|
|
+ ASSERT_EQ(type.data("min"_hs).get({}).cast<unsigned int>(), 0u);
|
|
|
+ ASSERT_EQ(type.data("max"_hs).get({}).cast<unsigned int>(), 100u);
|
|
|
}
|
|
|
|
|
|
TEST_F(Meta, Unregister) {
|
|
|
@@ -1588,17 +1588,17 @@ TEST_F(Meta, Unregister) {
|
|
|
entt::unregister<another_abstract_type>();
|
|
|
entt::unregister<concrete_type>();
|
|
|
|
|
|
- ASSERT_FALSE(entt::resolve("char"));
|
|
|
- ASSERT_FALSE(entt::resolve("base"));
|
|
|
- ASSERT_FALSE(entt::resolve("derived"));
|
|
|
- ASSERT_FALSE(entt::resolve("empty"));
|
|
|
- ASSERT_FALSE(entt::resolve("fat"));
|
|
|
- ASSERT_FALSE(entt::resolve("data"));
|
|
|
- ASSERT_FALSE(entt::resolve("func"));
|
|
|
- ASSERT_FALSE(entt::resolve("setter_getter"));
|
|
|
- ASSERT_FALSE(entt::resolve("an_abstract_type"));
|
|
|
- ASSERT_FALSE(entt::resolve("another_abstract_type"));
|
|
|
- ASSERT_FALSE(entt::resolve("concrete"));
|
|
|
+ ASSERT_FALSE(entt::resolve("char"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("base"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("derived"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("empty"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("fat"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("data"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("func"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("setter_getter"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("an_abstract_type"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("another_abstract_type"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("concrete"_hs));
|
|
|
|
|
|
Meta::SetUpAfterUnregistration();
|
|
|
entt::meta_any any{42.};
|
|
|
@@ -1607,8 +1607,8 @@ TEST_F(Meta, Unregister) {
|
|
|
ASSERT_FALSE(any.can_convert<int>());
|
|
|
ASSERT_TRUE(any.can_convert<float>());
|
|
|
|
|
|
- ASSERT_FALSE(entt::resolve("derived"));
|
|
|
- ASSERT_TRUE(entt::resolve("my_type"));
|
|
|
+ ASSERT_FALSE(entt::resolve("derived"_hs));
|
|
|
+ ASSERT_TRUE(entt::resolve("my_type"_hs));
|
|
|
|
|
|
entt::resolve<derived_type>().prop([](auto prop) {
|
|
|
ASSERT_TRUE(prop);
|
|
|
@@ -1619,9 +1619,9 @@ TEST_F(Meta, Unregister) {
|
|
|
ASSERT_FALSE((entt::resolve<derived_type>().ctor<const base_type &, int, char>()));
|
|
|
ASSERT_TRUE((entt::resolve<derived_type>().ctor<>()));
|
|
|
|
|
|
- ASSERT_TRUE(entt::resolve("your_type").data("a_data_member"));
|
|
|
- ASSERT_FALSE(entt::resolve("your_type").data("another_data_member"));
|
|
|
+ ASSERT_TRUE(entt::resolve("your_type"_hs).data("a_data_member"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("your_type"_hs).data("another_data_member"_hs));
|
|
|
|
|
|
- ASSERT_TRUE(entt::resolve("your_type").func("a_member_function"));
|
|
|
- ASSERT_FALSE(entt::resolve("your_type").func("another_member_function"));
|
|
|
+ ASSERT_TRUE(entt::resolve("your_type"_hs).func("a_member_function"_hs));
|
|
|
+ ASSERT_FALSE(entt::resolve("your_type"_hs).func("another_member_function"_hs));
|
|
|
}
|