NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::reflect::type_builder< T > 模板类 参考

类型反射构建器 更多...

#include <reflect.hpp>

Public 成员函数

 type_builder (string_view name)
 构造函数
template<typename Base>
type_builderbase ()
 添加基类(已解析)
type_builderbase (string_view base_name)
 添加基类(延迟解析)
template<typename U>
type_builderproperty (string_view name, U T::*member, const uint16_t attrs=PROP_NONE)
 添加属性
template<typename U>
type_builderproperty (string_view name, U T::*member, const uint16_t attrs, string_view notify_signal)
 添加属性(带变更通知信号)
template<typename U>
type_builderreadonly_property (string_view name, U T::*member)
 添加只读属性
template<typename Ret, typename... Args>
type_builderfunction (string_view name, Ret(T::*func)(Args...))
 添加成员函数
template<typename Ret, typename... Args>
type_builderfunction (string_view name, Ret(T::*func)(Args...) const)
 添加常量成员函数
template<typename Ret, typename... Args>
type_builderstatic_function (string_view name, Ret(*func)(Args...))
 添加静态函数
type_builderconstructor ()
 添加默认构造函数
template<typename... Args>
type_builderconstructor ()
 添加带参数构造函数
type_buildertable_name (string_view table)
 注册信号成员
type_builderenable_clone ()
 启用多态克隆支持
template<typename ElementType>
type_builderas_sequential_container ()
 注册为顺序容器类型
template<typename KeyType, typename MappedType>
type_builderas_associative_container ()
 注册为关联容器类型
meta_typemeta () noexcept
 获取元数据对象
const meta_typemeta () const noexcept
 获取常量元数据对象

详细描述

template<typename T>
class neforce::reflect::type_builder< T >

类型反射构建器

模板参数
T要注册的类型

提供链式API用于构建类型的反射信息。 通过 reflect 函数创建,用于注册基类、属性、函数和构造函数。

在文件 reflect.hpp32 行定义.

构造及析构函数说明

◆ type_builder()

template<typename T>
neforce::reflect::type_builder< T >::type_builder ( string_view name)
inlineexplicit

成员函数说明

◆ as_associative_container()

template<typename T>
template<typename KeyType, typename MappedType>
type_builder & neforce::reflect::type_builder< T >::as_associative_container ( )
inline

注册为关联容器类型

模板参数
KeyType键类型
MappedType值类型
返回
自身引用

要求 T 继承自 icollector<T> 且提供 begin()/end()。

在文件 reflect.hpp287 行定义.

引用了 associative, neforce::size(), type_builder() , 以及 neforce::reflect::type_id_for().

◆ as_sequential_container()

template<typename T>
template<typename ElementType>
type_builder & neforce::reflect::type_builder< T >::as_sequential_container ( )
inline

注册为顺序容器类型

模板参数
ElementType元素类型
返回
自身引用

要求 T 继承自 icollector<T> 且提供 begin()/end()/push_back()。

在文件 reflect.hpp253 行定义.

引用了 sequential, neforce::size(), type_builder() , 以及 neforce::reflect::type_id_for().

◆ base() [1/2]

template<typename T>
template<typename Base>
type_builder & neforce::reflect::type_builder< T >::base ( )
inline

添加基类(已解析)

模板参数
Base基类类型
返回
自身引用

在文件 reflect.hpp55 行定义.

引用了 neforce::reflect::registry::instance(), type_builder() , 以及 neforce::reflect::type_name_v.

◆ base() [2/2]

template<typename T>
type_builder & neforce::reflect::type_builder< T >::base ( string_view base_name)
inline

添加基类(延迟解析)

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

在文件 reflect.hpp65 行定义.

引用了 type_builder().

◆ constructor() [1/2]

template<typename T>
template<typename... Args>
type_builder & neforce::reflect::type_builder< T >::constructor ( )
inline

添加带参数构造函数

模板参数
Args参数类型列表
返回
自身引用

在文件 reflect.hpp200 行定义.

引用了 constructor(), neforce::is_constructible_v, neforce::vector< T, Alloc >::size() , 以及 type_builder().

◆ constructor() [2/2]

template<typename T>
type_builder & neforce::reflect::type_builder< T >::constructor ( )
inline

添加默认构造函数

返回
自身引用

在文件 reflect.hpp184 行定义.

引用了 constructor(), neforce::is_default_constructible_v , 以及 type_builder().

被这些函数引用 constructor().

◆ enable_clone()

template<typename T>
type_builder & neforce::reflect::type_builder< T >::enable_clone ( )
inline

启用多态克隆支持

返回
自身引用

在文件 reflect.hpp239 行定义.

引用了 neforce::is_copy_constructible_v , 以及 type_builder().

◆ function() [1/2]

template<typename T>
template<typename Ret, typename... Args>
type_builder & neforce::reflect::type_builder< T >::function ( string_view name,
Ret(T::* func )(Args...) const )
inline

添加常量成员函数

模板参数
Ret返回值类型
Args参数类型列表
参数
name函数名称
func常量成员函数指针
返回
自身引用

在文件 reflect.hpp155 行定义.

引用了 neforce::move() , 以及 type_builder().

◆ function() [2/2]

template<typename T>
template<typename Ret, typename... Args>
type_builder & neforce::reflect::type_builder< T >::function ( string_view name,
Ret(T::* func )(Args...) )
inline

添加成员函数

模板参数
Ret返回值类型
Args参数类型列表
参数
name函数名称
func成员函数指针
返回
自身引用

在文件 reflect.hpp137 行定义.

引用了 neforce::move() , 以及 type_builder().

◆ meta() [1/2]

template<typename T>
const meta_type & neforce::reflect::type_builder< T >::meta ( ) const
inlinenodiscardnoexcept

获取常量元数据对象

返回
元数据常量引用

在文件 reflect.hpp325 行定义.

◆ meta() [2/2]

template<typename T>
meta_type & neforce::reflect::type_builder< T >::meta ( )
inlinenodiscardnoexcept

获取元数据对象

返回
元数据引用

在文件 reflect.hpp319 行定义.

◆ property() [1/2]

template<typename T>
template<typename U>
type_builder & neforce::reflect::type_builder< T >::property ( string_view name,
U T::* member,
const uint16_t attrs,
string_view notify_signal )
inline

添加属性(带变更通知信号)

模板参数
U属性类型
参数
name属性名称
member成员指针
attrs属性注解
notify_signal变更通知信号名称
返回
自身引用

在文件 reflect.hpp107 行定义.

引用了 property() , 以及 type_builder().

◆ property() [2/2]

template<typename T>
template<typename U>
type_builder & neforce::reflect::type_builder< T >::property ( string_view name,
U T::* member,
const uint16_t attrs = PROP_NONE )
inline

添加属性

模板参数
U属性类型
参数
name属性名称
member成员指针
attrs属性注解标志
返回
自身引用

在文件 reflect.hpp79 行定义.

引用了 neforce::move(), neforce::reflect::PROP_NONE, type_builder() , 以及 neforce::reflect::type_id_for().

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

◆ readonly_property()

template<typename T>
template<typename U>
type_builder & neforce::reflect::type_builder< T >::readonly_property ( string_view name,
U T::* member )
inline

添加只读属性

模板参数
U属性类型
参数
name属性名称
member成员指针
返回
自身引用

在文件 reflect.hpp124 行定义.

引用了 neforce::reflect::PROP_READ_ONLY, property() , 以及 type_builder().

◆ static_function()

template<typename T>
template<typename Ret, typename... Args>
type_builder & neforce::reflect::type_builder< T >::static_function ( string_view name,
Ret(* func )(Args...) )
inline

添加静态函数

模板参数
Ret返回值类型
Args参数类型列表
参数
name函数名称
func函数指针
返回
自身引用

在文件 reflect.hpp173 行定义.

引用了 neforce::move() , 以及 type_builder().

◆ table_name()

template<typename T>
type_builder & neforce::reflect::type_builder< T >::table_name ( string_view table)
inline

注册信号成员

参数
name信号名称
返回
自身引用

将信号名称记录在类型的元数据中,供动态连接查询使用。

设置数据库表名

参数
table表名
返回
自身引用

当表名与类名不一致时使用此方法设置映射关系。

在文件 reflect.hpp225 行定义.

引用了 type_builder().


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