NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
meta_type类 参考

类型反射元数据类 更多...

#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_typebase_type (meta_type *base)
 添加基类(已解析)
meta_typebase_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_typeproperty (string_view name, reflect::type_id prop_type_id, meta_property::getter getter, meta_property::setter setter)
 添加属性
meta_functionfunction (string_view name, meta_function::invoker invoker)
 添加函数
meta_typeconstructor (constructor_func ctor)
 设置构造函数
NEFORCE_NODISCARD const meta_propertyget_property (string_view name) const
 获取属性
NEFORCE_NODISCARD const meta_functionget_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)
 解析待解析的基类名称

详细描述

类型反射元数据类

描述一个类型的完整反射信息,包括:

  • 类型基本信息(名称、大小、ID)
  • 继承关系(基类列表)
  • 属性列表(成员变量)
  • 函数列表(成员函数和静态函数)
  • 构造函数

在文件 type.hpp38 行定义.

构造及析构函数说明

◆ meta_type()

meta_type::meta_type ( string_view name,
reflect::type_id id,
size_t size )
inline

构造函数

参数
name类型名称
id类型ID
size类型大小

在文件 type.hpp109 行定义.

引用了 id(), name() , 以及 size().

被这些函数引用 base_type(), base_type(), constructor() , 以及 property().

成员函数说明

◆ all_functions()

NEFORCE_NODISCARD vector< pair< string, const meta_function * > > meta_type::all_functions ( ) const
inline

获取所有函数

返回
函数列表

在文件 type.hpp298 行定义.

◆ all_properties()

NEFORCE_NODISCARD vector< pair< string, const meta_property * > > meta_type::all_properties ( ) const
inline

获取所有属性

返回
属性列表

在文件 type.hpp288 行定义.

◆ base_type() [1/2]

meta_type & meta_type::base_type ( meta_type * base)
inline

添加基类(已解析)

参数
base基类元数据
返回
自身引用

在文件 type.hpp139 行定义.

引用了 meta_type().

◆ base_type() [2/2]

meta_type & meta_type::base_type ( string_view base_name)
inline

添加基类(延迟解析)

参数
base_name基类名称
返回
自身引用

在文件 type.hpp151 行定义.

引用了 meta_type().

◆ constructor()

meta_type & meta_type::constructor ( constructor_func ctor)
inline

设置构造函数

参数
ctor构造函数调用器
返回
自身引用

在文件 type.hpp210 行定义.

引用了 meta_type() , 以及 move().

◆ create() [1/2]

NEFORCE_NODISCARD meta_any meta_type::create ( ) const
inline

创建对象(无参构造)

返回
创建的对象

在文件 type.hpp261 行定义.

◆ create() [2/2]

NEFORCE_NODISCARD meta_any meta_type::create ( const vector< meta_any > & args) const
inline

创建对象(带参数)

参数
args构造参数
返回
创建的对象

在文件 type.hpp268 行定义.

◆ function()

meta_function * meta_type::function ( string_view name,
meta_function::invoker invoker )
inline

添加函数

参数
name函数名称
invoker调用器
返回
函数元数据指针

在文件 type.hpp200 行定义.

引用了 make_unique(), move() , 以及 name().

◆ functions()

NEFORCE_NODISCARD const auto & meta_type::functions ( ) const
inline

获取函数映射

返回
函数映射常量引用

在文件 type.hpp282 行定义.

◆ get_function()

NEFORCE_NODISCARD const meta_function * meta_type::get_function ( string_view name) const
inline

获取函数

参数
name函数名称
返回
函数元数据指针,不存在返回nullptr

在文件 type.hpp241 行定义.

引用了 name().

◆ get_property()

NEFORCE_NODISCARD const meta_property * meta_type::get_property ( string_view name) const
inline

获取属性

参数
name属性名称
返回
属性元数据指针,不存在返回nullptr

在文件 type.hpp220 行定义.

引用了 name().

◆ is_derived_from() [1/2]

NEFORCE_NODISCARD bool meta_type::is_derived_from ( reflect::type_id base_id) const
inline

检查是否派生自指定类型

参数
base_id基类类型ID
返回
是派生类返回true

在文件 type.hpp161 行定义.

◆ is_derived_from() [2/2]

NEFORCE_NODISCARD bool meta_type::is_derived_from ( string_view base_name) const
inline

检查是否派生自指定类型

参数
base_name基类名称
返回
是派生类返回true

在文件 type.hpp178 行定义.

引用了 is_derived_from() , 以及 basic_string_view< CharT, Traits >::to_hash().

被这些函数引用 is_derived_from().

◆ properties()

NEFORCE_NODISCARD const auto & meta_type::properties ( ) const
inline

获取属性映射

返回
属性映射常量引用

在文件 type.hpp276 行定义.

◆ property()

meta_type & meta_type::property ( string_view name,
reflect::type_id prop_type_id,
meta_property::getter getter,
meta_property::setter setter )
inline

添加属性

参数
name属性名称
prop_type_id属性类型ID
getter读取器
setter写入器
返回
自身引用

在文件 type.hpp188 行定义.

引用了 make_unique(), meta_type(), move() , 以及 name().

◆ resolve_bases()

void meta_type::resolve_bases ( registry * registry)

解析待解析的基类名称

参数
registry注册表指针

◆ resolve_bases_unlocked()

void meta_type::resolve_bases_unlocked ( registry * registry)

解析待解析的基类名称

参数
registry注册表指针

该类的文档由以下文件生成: