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

属性反射元数据类 更多...

#include <property.hpp>

Public 类型

using getter = function<meta_any(void*)>
 属性读取器类型
using setter = function<void(void*, const meta_any&)>
 属性写入器类型

Public 成员函数

 meta_property (string_view name, reflect::type_id type_id, getter getter, setter setter)
 构造函数
NEFORCE_NODISCARD string_view name () const noexcept
 获取属性名称
NEFORCE_NODISCARD reflect::type_id type_id () const noexcept
 获取属性类型ID
NEFORCE_NODISCARD meta_any get (void *obj) const
 获取属性值
bool set (void *obj, const meta_any &value) const
 设置属性值
template<typename T, enable_if_t<!is_same_v< meta_any, decay_t< T > >, int > = 0>
bool set (void *obj, T &&value) const
 设置属性值(直接值版本)

详细描述

属性反射元数据类

描述一个成员变量的元信息,支持通过反射读写属性值。

在文件 property.hpp28 行定义.

构造及析构函数说明

◆ meta_property()

meta_property::meta_property ( string_view name,
reflect::type_id type_id,
getter getter,
setter setter )
inline

构造函数

参数
name属性名称
type_id属性类型ID
getter读取器
setter写入器

在文件 property.hpp47 行定义.

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

成员函数说明

◆ get()

NEFORCE_NODISCARD meta_any meta_property::get ( void * obj) const
inline

获取属性值

参数
obj对象指针
返回
属性值(包装为any)

在文件 property.hpp70 行定义.

引用了 move().

◆ name()

NEFORCE_NODISCARD string_view meta_property::name ( ) const
inlinenoexcept

获取属性名称

返回
名称视图

在文件 property.hpp57 行定义.

被这些函数引用 meta_property().

◆ set() [1/2]

bool meta_property::set ( void * obj,
const meta_any & value ) const
inline

设置属性值

参数
obj对象指针
value要设置的值
返回
设置成功返回true

在文件 property.hpp83 行定义.

引用了 move().

被这些函数引用 set().

◆ set() [2/2]

template<typename T, enable_if_t<!is_same_v< meta_any, decay_t< T > >, int > = 0>
bool meta_property::set ( void * obj,
T && value ) const
inline

设置属性值(直接值版本)

模板参数
T值类型
参数
obj对象指针
value要设置的值
返回
设置成功返回true

在文件 property.hpp103 行定义.

引用了 forward() , 以及 set().

◆ type_id()

NEFORCE_NODISCARD reflect::type_id meta_property::type_id ( ) const
inlinenoexcept

获取属性类型ID

返回
类型ID

在文件 property.hpp63 行定义.

被这些函数引用 meta_property().


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