mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-15 03:45:30 +07:00
universal bind_ function
This commit is contained in:
@@ -210,61 +210,119 @@ namespace meta_hpp
|
||||
namespace meta_hpp
|
||||
{
|
||||
template < array_kind Array >
|
||||
array_bind<Array> array_(metadata_map metadata = {}) {
|
||||
array_bind<Array> bind_(metadata_map metadata = {}) {
|
||||
return array_bind<Array>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < class_kind Class >
|
||||
class_bind<Class> class_(metadata_map metadata = {}) {
|
||||
class_bind<Class> bind_(metadata_map metadata = {}) {
|
||||
return class_bind<Class>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < enum_kind Enum >
|
||||
enum_bind<Enum> enum_(metadata_map metadata = {}) {
|
||||
enum_bind<Enum> bind_(metadata_map metadata = {}) {
|
||||
return enum_bind<Enum>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < function_kind Function >
|
||||
function_bind<Function> function_(metadata_map metadata = {}) {
|
||||
function_bind<Function> bind_(metadata_map metadata = {}) {
|
||||
return function_bind<Function>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < member_pointer_kind Member >
|
||||
member_bind<Member> member_(metadata_map metadata = {}) {
|
||||
member_bind<Member> bind_(metadata_map metadata = {}) {
|
||||
return member_bind<Member>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < method_pointer_kind Method >
|
||||
method_bind<Method> method_(metadata_map metadata = {}) {
|
||||
method_bind<Method> bind_(metadata_map metadata = {}) {
|
||||
return method_bind<Method>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < nullptr_kind Nullptr >
|
||||
nullptr_bind<Nullptr> nullptr_(metadata_map metadata = {}) {
|
||||
nullptr_bind<Nullptr> bind_(metadata_map metadata = {}) {
|
||||
return nullptr_bind<Nullptr>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < number_kind Number >
|
||||
number_bind<Number> number_(metadata_map metadata = {}) {
|
||||
number_bind<Number> bind_(metadata_map metadata = {}) {
|
||||
return number_bind<Number>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < pointer_kind Pointer >
|
||||
pointer_bind<Pointer> pointer_(metadata_map metadata = {}) {
|
||||
pointer_bind<Pointer> bind_(metadata_map metadata = {}) {
|
||||
return pointer_bind<Pointer>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < reference_kind Reference >
|
||||
reference_bind<Reference> reference_(metadata_map metadata = {}) {
|
||||
reference_bind<Reference> bind_(metadata_map metadata = {}) {
|
||||
return reference_bind<Reference>{std::move(metadata)};
|
||||
}
|
||||
|
||||
template < void_kind Void >
|
||||
void_bind<Void> void_(metadata_map metadata = {}) {
|
||||
void_bind<Void> bind_(metadata_map metadata = {}) {
|
||||
return void_bind<Void>{std::move(metadata)};
|
||||
}
|
||||
}
|
||||
|
||||
namespace meta_hpp
|
||||
{
|
||||
template < array_kind Array >
|
||||
array_bind<Array> array_(metadata_map metadata = {}) {
|
||||
return bind_<Array>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < class_kind Class >
|
||||
class_bind<Class> class_(metadata_map metadata = {}) {
|
||||
return bind_<Class>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < enum_kind Enum >
|
||||
enum_bind<Enum> enum_(metadata_map metadata = {}) {
|
||||
return bind_<Enum>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < function_kind Function >
|
||||
function_bind<Function> function_(metadata_map metadata = {}) {
|
||||
return bind_<Function>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < member_pointer_kind Member >
|
||||
member_bind<Member> member_(metadata_map metadata = {}) {
|
||||
return bind_<Member>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < method_pointer_kind Method >
|
||||
method_bind<Method> method_(metadata_map metadata = {}) {
|
||||
return bind_<Method>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < nullptr_kind Nullptr >
|
||||
nullptr_bind<Nullptr> nullptr_(metadata_map metadata = {}) {
|
||||
return bind_<Nullptr>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < number_kind Number >
|
||||
number_bind<Number> number_(metadata_map metadata = {}) {
|
||||
return bind_<Number>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < pointer_kind Pointer >
|
||||
pointer_bind<Pointer> pointer_(metadata_map metadata = {}) {
|
||||
return bind_<Pointer>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < reference_kind Reference >
|
||||
reference_bind<Reference> reference_(metadata_map metadata = {}) {
|
||||
return bind_<Reference>(std::move(metadata));
|
||||
}
|
||||
|
||||
template < void_kind Void >
|
||||
void_bind<Void> void_(metadata_map metadata = {}) {
|
||||
return bind_<Void>(std::move(metadata));
|
||||
}
|
||||
}
|
||||
|
||||
namespace meta_hpp
|
||||
{
|
||||
inline scope_bind local_scope_(std::string name, metadata_map metadata = {}) {
|
||||
|
||||
Reference in New Issue
Block a user