mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-15 03:45:30 +07:00
metadata move tweaks
This commit is contained in:
@@ -3024,7 +3024,8 @@ namespace meta_hpp::detail
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto state = scope_state::make(std::string{name}, metadata_map{});
|
auto state = scope_state::make(std::string{name}, metadata_map{});
|
||||||
return scopes_.insert_or_assign(std::string{name}, std::move(state)).first->second;
|
auto&& [iter, _] = scopes_.insert_or_assign(std::string{name}, std::move(state));
|
||||||
|
return iter->second;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
state_registry() = default;
|
state_registry() = default;
|
||||||
@@ -3805,7 +3806,7 @@ namespace meta_hpp
|
|||||||
array_bind<Array>::array_bind(metadata_map metadata)
|
array_bind<Array>::array_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Array>())} {
|
: data_{detail::type_access(resolve_type<Array>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::array_kind Array >
|
template < detail::array_kind Array >
|
||||||
@@ -3820,7 +3821,7 @@ namespace meta_hpp
|
|||||||
class_bind<Class>::class_bind(metadata_map metadata)
|
class_bind<Class>::class_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Class>())} {
|
: data_{detail::type_access(resolve_type<Class>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
|
|
||||||
if constexpr ( std::is_destructible_v<Class> ) {
|
if constexpr ( std::is_destructible_v<Class> ) {
|
||||||
destructor_();
|
destructor_();
|
||||||
@@ -4137,7 +4138,7 @@ namespace meta_hpp
|
|||||||
enum_bind<Enum>::enum_bind(metadata_map metadata)
|
enum_bind<Enum>::enum_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Enum>())} {
|
: data_{detail::type_access(resolve_type<Enum>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::enum_kind Enum >
|
template < detail::enum_kind Enum >
|
||||||
@@ -4167,7 +4168,7 @@ namespace meta_hpp
|
|||||||
function_bind<Function>::function_bind(metadata_map metadata)
|
function_bind<Function>::function_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Function>())} {
|
: data_{detail::type_access(resolve_type<Function>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::function_kind Function >
|
template < detail::function_kind Function >
|
||||||
@@ -4182,7 +4183,7 @@ namespace meta_hpp
|
|||||||
member_bind<Member>::member_bind(metadata_map metadata)
|
member_bind<Member>::member_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Member>())} {
|
: data_{detail::type_access(resolve_type<Member>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::member_kind Member >
|
template < detail::member_kind Member >
|
||||||
@@ -4197,7 +4198,7 @@ namespace meta_hpp
|
|||||||
method_bind<Method>::method_bind(metadata_map metadata)
|
method_bind<Method>::method_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Method>())} {
|
: data_{detail::type_access(resolve_type<Method>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::method_kind Method >
|
template < detail::method_kind Method >
|
||||||
@@ -4212,7 +4213,7 @@ namespace meta_hpp
|
|||||||
nullptr_bind<Nullptr>::nullptr_bind(metadata_map metadata)
|
nullptr_bind<Nullptr>::nullptr_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Nullptr>())} {
|
: data_{detail::type_access(resolve_type<Nullptr>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::nullptr_kind Nullptr >
|
template < detail::nullptr_kind Nullptr >
|
||||||
@@ -4227,7 +4228,7 @@ namespace meta_hpp
|
|||||||
number_bind<Number>::number_bind(metadata_map metadata)
|
number_bind<Number>::number_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Number>())} {
|
: data_{detail::type_access(resolve_type<Number>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::number_kind Number >
|
template < detail::number_kind Number >
|
||||||
@@ -4242,7 +4243,7 @@ namespace meta_hpp
|
|||||||
pointer_bind<Pointer>::pointer_bind(metadata_map metadata)
|
pointer_bind<Pointer>::pointer_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Pointer>())} {
|
: data_{detail::type_access(resolve_type<Pointer>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::pointer_kind Pointer >
|
template < detail::pointer_kind Pointer >
|
||||||
@@ -4257,7 +4258,7 @@ namespace meta_hpp
|
|||||||
reference_bind<Reference>::reference_bind(metadata_map metadata)
|
reference_bind<Reference>::reference_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Reference>())} {
|
: data_{detail::type_access(resolve_type<Reference>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::reference_kind Reference >
|
template < detail::reference_kind Reference >
|
||||||
@@ -4274,7 +4275,7 @@ namespace meta_hpp
|
|||||||
inline scope_bind::scope_bind(std::string_view name, metadata_map metadata, static_tag)
|
inline scope_bind::scope_bind(std::string_view name, metadata_map metadata, static_tag)
|
||||||
: state_{detail::state_access(resolve_scope(name))} {
|
: state_{detail::state_access(resolve_scope(name))} {
|
||||||
state_->metadata.swap(metadata);
|
state_->metadata.swap(metadata);
|
||||||
state_->metadata.merge(metadata);
|
state_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline scope_bind::operator scope() const noexcept {
|
inline scope_bind::operator scope() const noexcept {
|
||||||
@@ -4391,7 +4392,7 @@ namespace meta_hpp
|
|||||||
void_bind<Void>::void_bind(metadata_map metadata)
|
void_bind<Void>::void_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<void>())} {
|
: data_{detail::type_access(resolve_type<void>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::void_kind Void >
|
template < detail::void_kind Void >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
array_bind<Array>::array_bind(metadata_map metadata)
|
array_bind<Array>::array_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Array>())} {
|
: data_{detail::type_access(resolve_type<Array>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::array_kind Array >
|
template < detail::array_kind Array >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
class_bind<Class>::class_bind(metadata_map metadata)
|
class_bind<Class>::class_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Class>())} {
|
: data_{detail::type_access(resolve_type<Class>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
|
|
||||||
if constexpr ( std::is_destructible_v<Class> ) {
|
if constexpr ( std::is_destructible_v<Class> ) {
|
||||||
destructor_();
|
destructor_();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
enum_bind<Enum>::enum_bind(metadata_map metadata)
|
enum_bind<Enum>::enum_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Enum>())} {
|
: data_{detail::type_access(resolve_type<Enum>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::enum_kind Enum >
|
template < detail::enum_kind Enum >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
function_bind<Function>::function_bind(metadata_map metadata)
|
function_bind<Function>::function_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Function>())} {
|
: data_{detail::type_access(resolve_type<Function>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::function_kind Function >
|
template < detail::function_kind Function >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
member_bind<Member>::member_bind(metadata_map metadata)
|
member_bind<Member>::member_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Member>())} {
|
: data_{detail::type_access(resolve_type<Member>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::member_kind Member >
|
template < detail::member_kind Member >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
method_bind<Method>::method_bind(metadata_map metadata)
|
method_bind<Method>::method_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Method>())} {
|
: data_{detail::type_access(resolve_type<Method>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::method_kind Method >
|
template < detail::method_kind Method >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
nullptr_bind<Nullptr>::nullptr_bind(metadata_map metadata)
|
nullptr_bind<Nullptr>::nullptr_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Nullptr>())} {
|
: data_{detail::type_access(resolve_type<Nullptr>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::nullptr_kind Nullptr >
|
template < detail::nullptr_kind Nullptr >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
number_bind<Number>::number_bind(metadata_map metadata)
|
number_bind<Number>::number_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Number>())} {
|
: data_{detail::type_access(resolve_type<Number>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::number_kind Number >
|
template < detail::number_kind Number >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
pointer_bind<Pointer>::pointer_bind(metadata_map metadata)
|
pointer_bind<Pointer>::pointer_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Pointer>())} {
|
: data_{detail::type_access(resolve_type<Pointer>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::pointer_kind Pointer >
|
template < detail::pointer_kind Pointer >
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
reference_bind<Reference>::reference_bind(metadata_map metadata)
|
reference_bind<Reference>::reference_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<Reference>())} {
|
: data_{detail::type_access(resolve_type<Reference>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::reference_kind Reference >
|
template < detail::reference_kind Reference >
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace meta_hpp
|
|||||||
inline scope_bind::scope_bind(std::string_view name, metadata_map metadata, static_tag)
|
inline scope_bind::scope_bind(std::string_view name, metadata_map metadata, static_tag)
|
||||||
: state_{detail::state_access(resolve_scope(name))} {
|
: state_{detail::state_access(resolve_scope(name))} {
|
||||||
state_->metadata.swap(metadata);
|
state_->metadata.swap(metadata);
|
||||||
state_->metadata.merge(metadata);
|
state_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline scope_bind::operator scope() const noexcept {
|
inline scope_bind::operator scope() const noexcept {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace meta_hpp
|
|||||||
void_bind<Void>::void_bind(metadata_map metadata)
|
void_bind<Void>::void_bind(metadata_map metadata)
|
||||||
: data_{detail::type_access(resolve_type<void>())} {
|
: data_{detail::type_access(resolve_type<void>())} {
|
||||||
data_->metadata.swap(metadata);
|
data_->metadata.swap(metadata);
|
||||||
data_->metadata.merge(metadata);
|
data_->metadata.merge(std::move(metadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
template < detail::void_kind Void >
|
template < detail::void_kind Void >
|
||||||
|
|||||||
@@ -50,7 +50,8 @@ namespace meta_hpp::detail
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto state = scope_state::make(std::string{name}, metadata_map{});
|
auto state = scope_state::make(std::string{name}, metadata_map{});
|
||||||
return scopes_.insert_or_assign(std::string{name}, std::move(state)).first->second;
|
auto&& [iter, _] = scopes_.insert_or_assign(std::string{name}, std::move(state));
|
||||||
|
return iter->second;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
state_registry() = default;
|
state_registry() = default;
|
||||||
|
|||||||
Reference in New Issue
Block a user