mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-15 11:52:08 +07:00
universal bind_ function
This commit is contained in:
@@ -5040,61 +5040,119 @@ namespace meta_hpp
|
|||||||
namespace meta_hpp
|
namespace meta_hpp
|
||||||
{
|
{
|
||||||
template < array_kind Array >
|
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)};
|
return array_bind<Array>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < class_kind Class >
|
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)};
|
return class_bind<Class>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < enum_kind Enum >
|
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)};
|
return enum_bind<Enum>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < function_kind Function >
|
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)};
|
return function_bind<Function>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < member_pointer_kind Member >
|
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)};
|
return member_bind<Member>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < method_pointer_kind Method >
|
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)};
|
return method_bind<Method>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < nullptr_kind Nullptr >
|
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)};
|
return nullptr_bind<Nullptr>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < number_kind Number >
|
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)};
|
return number_bind<Number>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < pointer_kind Pointer >
|
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)};
|
return pointer_bind<Pointer>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < reference_kind Reference >
|
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)};
|
return reference_bind<Reference>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < void_kind Void >
|
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)};
|
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
|
namespace meta_hpp
|
||||||
{
|
{
|
||||||
inline scope_bind local_scope_(std::string name, metadata_map metadata = {}) {
|
inline scope_bind local_scope_(std::string name, metadata_map metadata = {}) {
|
||||||
|
|||||||
@@ -210,61 +210,119 @@ namespace meta_hpp
|
|||||||
namespace meta_hpp
|
namespace meta_hpp
|
||||||
{
|
{
|
||||||
template < array_kind Array >
|
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)};
|
return array_bind<Array>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < class_kind Class >
|
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)};
|
return class_bind<Class>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < enum_kind Enum >
|
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)};
|
return enum_bind<Enum>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < function_kind Function >
|
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)};
|
return function_bind<Function>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < member_pointer_kind Member >
|
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)};
|
return member_bind<Member>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < method_pointer_kind Method >
|
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)};
|
return method_bind<Method>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < nullptr_kind Nullptr >
|
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)};
|
return nullptr_bind<Nullptr>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < number_kind Number >
|
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)};
|
return number_bind<Number>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < pointer_kind Pointer >
|
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)};
|
return pointer_bind<Pointer>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < reference_kind Reference >
|
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)};
|
return reference_bind<Reference>{std::move(metadata)};
|
||||||
}
|
}
|
||||||
|
|
||||||
template < void_kind Void >
|
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)};
|
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
|
namespace meta_hpp
|
||||||
{
|
{
|
||||||
inline scope_bind local_scope_(std::string name, metadata_map metadata = {}) {
|
inline scope_bind local_scope_(std::string name, metadata_map metadata = {}) {
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --------------------------------------------- | ------------- |
|
| --------------------------------------------- | ------------- |
|
||||||
|
| [bind_](./api/binds.md#bind_) | bind_ |
|
||||||
| [array_](./api/binds.md#array_) | array_ |
|
| [array_](./api/binds.md#array_) | array_ |
|
||||||
| [class_](./api/binds.md#class_) | class_ |
|
| [class_](./api/binds.md#class_) | class_ |
|
||||||
| [enum_](./api/binds.md#enum_) | enum_ |
|
| [enum_](./api/binds.md#enum_) | enum_ |
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
- [arguments\_bind](#arguments_bind)
|
- [arguments\_bind](#arguments_bind)
|
||||||
- [metadata\_bind](#metadata_bind)
|
- [metadata\_bind](#metadata_bind)
|
||||||
- [Functions](#functions)
|
- [Functions](#functions)
|
||||||
|
- [bind\_](#bind_)
|
||||||
- [array\_](#array_)
|
- [array\_](#array_)
|
||||||
- [class\_](#class_)
|
- [class\_](#class_)
|
||||||
- [enum\_](#enum_)
|
- [enum\_](#enum_)
|
||||||
@@ -242,6 +243,13 @@ public:
|
|||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
|
### bind_
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
template < typename T >
|
||||||
|
auto bind_(metadata_map metadata = {});
|
||||||
|
```
|
||||||
|
|
||||||
### array_
|
### array_
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
|
|||||||
Reference in New Issue
Block a user