|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
类型反射元数据类 更多...
#include <type.hpp>
Public 类型 | |
| using | constructor_func = _NEFORCE function<meta_any(const vector<meta_any>&)> |
| 构造函数调用器类型 | |
Public 成员函数 | |
| meta_type (string_view name, reflect::type_id id, size_t size) | |
| 构造函数 | |
| NEFORCE_NODISCARD reflect::type_id | type_id () const noexcept |
| 获取类型ID | |
| NEFORCE_NODISCARD string_view | name () const noexcept |
| 获取类型名称 | |
| NEFORCE_NODISCARD size_t | size () const noexcept |
| 获取类型大小 | |
| NEFORCE_NODISCARD const vector< meta_type * > & | base_types () const |
| 获取基类列表 | |
| meta_type & | base_type (meta_type *base) |
| 添加基类(已解析) | |
| meta_type & | base_type (string_view base_name) |
| 添加基类(延迟解析) | |
| NEFORCE_NODISCARD bool | is_derived_from (reflect::type_id base_id) const |
| 检查是否派生自指定类型 | |
| NEFORCE_NODISCARD bool | is_derived_from (string_view base_name) const |
| 检查是否派生自指定类型 | |
| meta_type & | property (string_view name, reflect::type_id prop_type_id, meta_property::getter getter, meta_property::setter setter) |
| 添加属性 | |
| meta_function * | function (string_view name, meta_function::invoker invoker) |
| 添加函数 | |
| meta_type & | constructor (constructor_func ctor) |
| 设置构造函数 | |
| NEFORCE_NODISCARD const meta_property * | get_property (string_view name) const |
| 获取属性 | |
| NEFORCE_NODISCARD const meta_function * | get_function (string_view name) const |
| 获取函数 | |
| NEFORCE_NODISCARD meta_any | create () const |
| 创建对象(无参构造) | |
| NEFORCE_NODISCARD meta_any | create (const vector< meta_any > &args) const |
| 创建对象(带参数) | |
| NEFORCE_NODISCARD const auto & | properties () const |
| 获取属性映射 | |
| NEFORCE_NODISCARD const auto & | functions () const |
| 获取函数映射 | |
| NEFORCE_NODISCARD vector< pair< string, const meta_property * > > | all_properties () const |
| 获取所有属性 | |
| NEFORCE_NODISCARD vector< pair< string, const meta_function * > > | all_functions () const |
| 获取所有函数 | |
| void | resolve_bases (registry *registry) |
| 解析待解析的基类名称 | |
| void | resolve_bases_unlocked (registry *registry) |
| 解析待解析的基类名称 | |
类型反射元数据类
描述一个类型的完整反射信息,包括:
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
检查是否派生自指定类型
| base_name | 基类名称 |
引用了 is_derived_from() , 以及 basic_string_view< CharT, Traits >::to_hash().
被这些函数引用 is_derived_from().
|
inline |
|
inline |
添加属性
| name | 属性名称 |
| prop_type_id | 属性类型ID |
| getter | 读取器 |
| setter | 写入器 |
引用了 make_unique(), meta_type(), move() , 以及 name().
| void meta_type::resolve_bases | ( | registry * | registry | ) |
解析待解析的基类名称
| registry | 注册表指针 |
| void meta_type::resolve_bases_unlocked | ( | registry * | registry | ) |
解析待解析的基类名称
| registry | 注册表指针 |