mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-15 03:45:30 +07:00
remove public resolve_constructor_type/resolve_destructor_type
This commit is contained in:
@@ -4698,23 +4698,6 @@ namespace meta_hpp
|
||||
}
|
||||
}
|
||||
|
||||
namespace meta_hpp
|
||||
{
|
||||
template < class_kind Class, typename... Args >
|
||||
[[nodiscard]] constructor_type resolve_constructor_type() {
|
||||
using namespace detail;
|
||||
type_registry& registry = type_registry::instance();
|
||||
return registry.resolve_constructor_type<Class, Args...>();
|
||||
}
|
||||
|
||||
template < class_kind Class >
|
||||
[[nodiscard]] destructor_type resolve_destructor_type() {
|
||||
using namespace detail;
|
||||
type_registry& registry = type_registry::instance();
|
||||
return registry.resolve_destructor_type<Class>();
|
||||
}
|
||||
}
|
||||
|
||||
namespace meta_hpp
|
||||
{
|
||||
template < typename F >
|
||||
|
||||
@@ -15,9 +15,6 @@ namespace
|
||||
|
||||
struct ivec2 {
|
||||
int x{}, y{};
|
||||
|
||||
explicit ivec2(int nv) : x{nv}, y{nv} {}
|
||||
ivec2(int nx, int ny) : x{nx}, y{ny} {}
|
||||
};
|
||||
|
||||
struct another_ivec2 {
|
||||
@@ -78,11 +75,19 @@ TEST_CASE("meta/meta_shared/tests") {
|
||||
REQUIRE(ivec2_dtor);
|
||||
REQUIRE(another_ivec2_dtor);
|
||||
|
||||
CHECK(ivec2_ctor0.get_type() == meta::resolve_constructor_type<ivec2, const ivec2&>());
|
||||
CHECK(ivec2_ctor1.get_type() == meta::resolve_constructor_type<ivec2, int>());
|
||||
CHECK(ivec2_ctor2.get_type() == meta::resolve_constructor_type<ivec2, int, int>());
|
||||
CHECK(ivec2_dtor.get_type() == meta::resolve_destructor_type<ivec2>());
|
||||
CHECK(another_ivec2_dtor.get_type() == meta::resolve_destructor_type<another_ivec2>());
|
||||
CHECK(ivec2_ctor0.get_type().get_owner_type() == meta::resolve_type<ivec2>());
|
||||
CHECK(ivec2_ctor0.get_type().get_argument_type(0) == meta::resolve_type<const ivec2&>());
|
||||
|
||||
CHECK(ivec2_ctor1.get_type().get_owner_type() == meta::resolve_type<ivec2>());
|
||||
CHECK(ivec2_ctor1.get_type().get_argument_type(0) == meta::resolve_type<int>());
|
||||
|
||||
CHECK(ivec2_ctor2.get_type().get_owner_type() == meta::resolve_type<ivec2>());
|
||||
CHECK(ivec2_ctor2.get_type().get_argument_type(0) == meta::resolve_type<int>());
|
||||
CHECK(ivec2_ctor2.get_type().get_argument_type(1) == meta::resolve_type<int>());
|
||||
|
||||
CHECK(ivec2_dtor.get_type().get_owner_type() == meta::resolve_type<ivec2>());
|
||||
|
||||
CHECK(another_ivec2_dtor.get_type().get_owner_type() == meta::resolve_type<another_ivec2>());
|
||||
|
||||
CHECK(ivec2_ctor0 != ivec2_ctor1);
|
||||
CHECK(ivec2_ctor1 != ivec2_ctor2);
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace
|
||||
++constructor_counter;
|
||||
}
|
||||
|
||||
clazz_noncopyable(clazz_noncopyable&& other) : i{other.i} {
|
||||
clazz_noncopyable(clazz_noncopyable&& other) noexcept : i{other.i} {
|
||||
other.i = 0;
|
||||
++move_constructor_counter;
|
||||
}
|
||||
@@ -88,7 +88,10 @@ TEST_CASE("meta/meta_states/ctor/noncopyable") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<int>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, int>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<int>());
|
||||
}
|
||||
{
|
||||
const meta::uvalue v = clazz_type.create(42);
|
||||
@@ -106,7 +109,11 @@ TEST_CASE("meta/meta_states/ctor/noncopyable") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<clazz_t&&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, clazz_t&&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<clazz_t&&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_flags::is_noexcept);
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
@@ -146,8 +153,10 @@ TEST_CASE("meta/meta_states/ctor/as_object") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<int>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, int>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<int>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
@@ -221,8 +230,10 @@ TEST_CASE("meta/meta_states/ctor/as_object") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<clazz_t&&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, clazz_t&&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<clazz_t&&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_flags::is_noexcept);
|
||||
}
|
||||
{
|
||||
@@ -260,7 +271,11 @@ TEST_CASE("meta/meta_states/ctor/as_object") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<const clazz_t&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, const clazz_t&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<const clazz_t&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
@@ -316,7 +331,11 @@ TEST_CASE("meta/meta_states/ctor/as_raw_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<int>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, int>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<int>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
const meta::uvalue v = clazz_type.create(42);
|
||||
@@ -334,7 +353,11 @@ TEST_CASE("meta/meta_states/ctor/as_raw_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<clazz_t&&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, clazz_t&&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<clazz_t&&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_flags::is_noexcept);
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
@@ -353,7 +376,11 @@ TEST_CASE("meta/meta_states/ctor/as_raw_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<const clazz_t&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, const clazz_t&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<const clazz_t&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
@@ -391,7 +418,11 @@ TEST_CASE("meta/meta_states/ctor/as_shared_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<int>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, int>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<int>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
const meta::uvalue v = clazz_type.create(42);
|
||||
@@ -409,7 +440,11 @@ TEST_CASE("meta/meta_states/ctor/as_shared_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<clazz_t&&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, clazz_t&&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<clazz_t&&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_flags::is_noexcept);
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
@@ -428,7 +463,11 @@ TEST_CASE("meta/meta_states/ctor/as_shared_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<const clazz_t&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, const clazz_t&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<const clazz_t&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
@@ -466,7 +505,11 @@ TEST_CASE("meta/meta_states/ctor/as_unique_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<int>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, int>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<int>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
const meta::uvalue v = clazz_type.create(42);
|
||||
@@ -484,7 +527,11 @@ TEST_CASE("meta/meta_states/ctor/as_unique_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<clazz_t&&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, clazz_t&&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<clazz_t&&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_flags::is_noexcept);
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
@@ -503,7 +550,11 @@ TEST_CASE("meta/meta_states/ctor/as_unique_pointer") {
|
||||
{
|
||||
const meta::constructor ctor = clazz_type.get_constructor_with<const clazz_t&>();
|
||||
REQUIRE(ctor);
|
||||
CHECK(ctor.get_type() == meta::resolve_constructor_type<clazz_t, const clazz_t&>());
|
||||
|
||||
CHECK(ctor.get_type().get_owner_type() == meta::resolve_type<clazz_t>());
|
||||
CHECK(ctor.get_type().get_arity() == 1);
|
||||
CHECK(ctor.get_type().get_argument_type(0) == meta::resolve_type<const clazz_t&>());
|
||||
CHECK(ctor.get_type().get_flags() == meta::constructor_bitflags{});
|
||||
}
|
||||
{
|
||||
clazz_t o{42};
|
||||
|
||||
@@ -58,23 +58,6 @@ namespace meta_hpp
|
||||
}
|
||||
}
|
||||
|
||||
namespace meta_hpp
|
||||
{
|
||||
template < class_kind Class, typename... Args >
|
||||
[[nodiscard]] constructor_type resolve_constructor_type() {
|
||||
using namespace detail;
|
||||
type_registry& registry = type_registry::instance();
|
||||
return registry.resolve_constructor_type<Class, Args...>();
|
||||
}
|
||||
|
||||
template < class_kind Class >
|
||||
[[nodiscard]] destructor_type resolve_destructor_type() {
|
||||
using namespace detail;
|
||||
type_registry& registry = type_registry::instance();
|
||||
return registry.resolve_destructor_type<Class>();
|
||||
}
|
||||
}
|
||||
|
||||
namespace meta_hpp
|
||||
{
|
||||
template < typename F >
|
||||
|
||||
Reference in New Issue
Block a user