|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
类型反射构建器 更多...
#include <reflect.hpp>
Public 成员函数 | |
| type_builder (string_view name) | |
| 构造函数 | |
| template<typename Base> | |
| type_builder & | base () |
| 添加基类(已解析) | |
| type_builder & | base (string_view base_name) |
| 添加基类(延迟解析) | |
| template<typename U> | |
| type_builder & | property (string_view name, U T::*member, const uint16_t attrs=PROP_NONE) |
| 添加属性 | |
| template<typename U> | |
| type_builder & | property (string_view name, U T::*member, const uint16_t attrs, string_view notify_signal) |
| 添加属性(带变更通知信号) | |
| template<typename U> | |
| type_builder & | readonly_property (string_view name, U T::*member) |
| 添加只读属性 | |
| template<typename Ret, typename... Args> | |
| type_builder & | function (string_view name, Ret(T::*func)(Args...)) |
| 添加成员函数 | |
| template<typename Ret, typename... Args> | |
| type_builder & | function (string_view name, Ret(T::*func)(Args...) const) |
| 添加常量成员函数 | |
| template<typename Ret, typename... Args> | |
| type_builder & | static_function (string_view name, Ret(*func)(Args...)) |
| 添加静态函数 | |
| type_builder & | constructor () |
| 添加默认构造函数 | |
| template<typename... Args> | |
| type_builder & | constructor () |
| 添加带参数构造函数 | |
| type_builder & | table_name (string_view table) |
| 注册信号成员 | |
| type_builder & | enable_clone () |
| 启用多态克隆支持 | |
| template<typename ElementType> | |
| type_builder & | as_sequential_container () |
| 注册为顺序容器类型 | |
| template<typename KeyType, typename MappedType> | |
| type_builder & | as_associative_container () |
| 注册为关联容器类型 | |
| meta_type & | meta () noexcept |
| 获取元数据对象 | |
| const meta_type & | meta () const noexcept |
| 获取常量元数据对象 | |
类型反射构建器
| T | 要注册的类型 |
提供链式API用于构建类型的反射信息。 通过 reflect 函数创建,用于注册基类、属性、函数和构造函数。
在文件 reflect.hpp 第 32 行定义.
|
inlineexplicit |
构造函数
| name | 类型名称 |
在文件 reflect.hpp 第 46 行定义.
被这些函数引用 as_associative_container(), as_sequential_container(), base(), base(), constructor(), enable_clone(), function(), function(), property(), property(), readonly_property(), static_function() , 以及 table_name().
|
inline |
注册为关联容器类型
| KeyType | 键类型 |
| MappedType | 值类型 |
要求 T 继承自 icollector<T> 且提供 begin()/end()。
在文件 reflect.hpp 第 287 行定义.
引用了 associative, neforce::size(), type_builder() , 以及 neforce::reflect::type_id_for().
|
inline |
注册为顺序容器类型
| ElementType | 元素类型 |
要求 T 继承自 icollector<T> 且提供 begin()/end()/push_back()。
在文件 reflect.hpp 第 253 行定义.
引用了 sequential, neforce::size(), type_builder() , 以及 neforce::reflect::type_id_for().
|
inline |
添加基类(已解析)
| Base | 基类类型 |
在文件 reflect.hpp 第 55 行定义.
引用了 neforce::reflect::registry::instance(), type_builder() , 以及 neforce::reflect::type_name_v.
|
inline |
|
inline |
添加带参数构造函数
| Args | 参数类型列表 |
在文件 reflect.hpp 第 200 行定义.
引用了 constructor(), neforce::is_constructible_v, neforce::vector< T, Alloc >::size() , 以及 type_builder().
|
inline |
添加默认构造函数
在文件 reflect.hpp 第 184 行定义.
引用了 constructor(), neforce::is_default_constructible_v , 以及 type_builder().
被这些函数引用 constructor().
|
inline |
|
inline |
添加常量成员函数
| Ret | 返回值类型 |
| Args | 参数类型列表 |
| name | 函数名称 |
| func | 常量成员函数指针 |
在文件 reflect.hpp 第 155 行定义.
引用了 neforce::move() , 以及 type_builder().
|
inline |
添加成员函数
| Ret | 返回值类型 |
| Args | 参数类型列表 |
| name | 函数名称 |
| func | 成员函数指针 |
在文件 reflect.hpp 第 137 行定义.
引用了 neforce::move() , 以及 type_builder().
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inline |
添加属性(带变更通知信号)
| U | 属性类型 |
| name | 属性名称 |
| member | 成员指针 |
| attrs | 属性注解 |
| notify_signal | 变更通知信号名称 |
在文件 reflect.hpp 第 107 行定义.
引用了 property() , 以及 type_builder().
|
inline |
添加属性
| U | 属性类型 |
| name | 属性名称 |
| member | 成员指针 |
| attrs | 属性注解标志 |
在文件 reflect.hpp 第 79 行定义.
引用了 neforce::move(), neforce::reflect::PROP_NONE, type_builder() , 以及 neforce::reflect::type_id_for().
被这些函数引用 property() , 以及 readonly_property().
|
inline |
添加只读属性
| U | 属性类型 |
| name | 属性名称 |
| member | 成员指针 |
在文件 reflect.hpp 第 124 行定义.
引用了 neforce::reflect::PROP_READ_ONLY, property() , 以及 type_builder().
|
inline |
添加静态函数
| Ret | 返回值类型 |
| Args | 参数类型列表 |
| name | 函数名称 |
| func | 函数指针 |
在文件 reflect.hpp 第 173 行定义.
引用了 neforce::move() , 以及 type_builder().
|
inline |
注册信号成员
| name | 信号名称 |
将信号名称记录在类型的元数据中,供动态连接查询使用。
设置数据库表名
| table | 表名 |
当表名与类名不一致时使用此方法设置映射关系。
在文件 reflect.hpp 第 225 行定义.
引用了 type_builder().