SimpleWindow
载入中...
搜索中...
未找到
sw::Reflection类 参考

提供反射相关功能 更多...

#include <Reflection.h>

Public 成员函数

 Reflection ()=delete
 静态类,不允许实例化
 

静态 Public 成员函数

template<typename T , typename TField >
static FieldId GetFieldId (TField T::*field) noexcept
 获取字段的唯一标识符
 
template<typename T , typename TRet , typename... Args>
static auto GetMethod (TRet(T::*method)(Args...)) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, Delegate< TRet(DynamicObject &, Args...)> >::type
 获取成员函数的委托
 
template<typename T , typename TRet , typename... Args>
static auto GetMethod (TRet(T::*method)(Args...) const) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, Delegate< TRet(DynamicObject &, Args...)> >::type
 获取常量成员函数的委托
 
template<typename T , typename TField >
static auto GetFieldAccessor (TField T::*field) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, Delegate< TField &(DynamicObject &)> >::type
 获取字段的访问器
 
template<typename T , typename TProperty >
static auto GetPropertyGetter (TProperty T::*prop) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&_IsReadableProperty< TProperty >::value, Delegate< typename TProperty::TValue(DynamicObject &)> >::type
 获取属性的Getter委托
 
template<typename T , typename TProperty >
static auto GetPropertyGetter (TProperty T::*prop) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&!_IsReadableProperty< TProperty >::value, Delegate< typename TProperty::TValue(DynamicObject &)> >::type
 获取属性的Getter委托
 
template<typename T , typename TProperty >
static auto GetPropertySetter (TProperty T::*prop) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&_IsWritableProperty< TProperty >::value, Delegate< void(DynamicObject &, typename TProperty::TSetterParam)> >::type
 获取属性的Setter委托
 
template<typename T , typename TProperty >
static auto GetPropertySetter (TProperty T::*prop) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&!_IsWritableProperty< TProperty >::value, Delegate< void(DynamicObject &, typename TProperty::TSetterParam)> >::type
 获取属性的Setter委托
 

详细描述

提供反射相关功能

成员函数说明

◆ GetFieldAccessor()

template<typename T , typename TField >
static auto sw::Reflection::GetFieldAccessor ( TField T::*  field) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value, Delegate<TField &(DynamicObject &)>>::type
inlinestatic

获取字段的访问器

模板参数
T字段所属类类型
TField字段类型
参数
field字段的成员指针
返回
对应的访问器

◆ GetFieldId()

template<typename T , typename TField >
static FieldId sw::Reflection::GetFieldId ( TField T::*  field)
inlinestaticnoexcept

获取字段的唯一标识符

模板参数
T字段所属类类型
TField字段类型
参数
field字段的成员指针
返回
对应的字段ID

◆ GetMethod() [1/2]

template<typename T , typename TRet , typename... Args>
static auto sw::Reflection::GetMethod ( TRet(T::*)(Args...) const  method) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value, Delegate<TRet(DynamicObject &, Args...)>>::type
inlinestatic

获取常量成员函数的委托

模板参数
T成员函数所属类类型
TRet成员函数返回值类型
Args成员函数参数类型列表
参数
method成员函数指针
返回
对应的委托

◆ GetMethod() [2/2]

template<typename T , typename TRet , typename... Args>
static auto sw::Reflection::GetMethod ( TRet(T::*)(Args...)  method) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value, Delegate<TRet(DynamicObject &, Args...)>>::type
inlinestatic

获取成员函数的委托

模板参数
T成员函数所属类类型
TRet成员函数返回值类型
Args成员函数参数类型列表
参数
method成员函数指针
返回
对应的委托

◆ GetPropertyGetter() [1/2]

template<typename T , typename TProperty >
static auto sw::Reflection::GetPropertyGetter ( TProperty T::*  prop) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && !_IsReadableProperty<TProperty>::value, Delegate<typename TProperty::TValue(DynamicObject &)>>::type
inlinestatic

获取属性的Getter委托

模板参数
T属性所属类类型
TProperty属性类型
参数
prop属性指针
返回
对应的Getter委托
注解
若属性不可读则返回空委托

◆ GetPropertyGetter() [2/2]

template<typename T , typename TProperty >
static auto sw::Reflection::GetPropertyGetter ( TProperty T::*  prop) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && _IsReadableProperty<TProperty>::value, Delegate<typename TProperty::TValue(DynamicObject &)>>::type
inlinestatic

获取属性的Getter委托

模板参数
T属性所属类类型
TProperty属性类型
参数
prop属性指针
返回
对应的Getter委托
注解
若属性不可读则返回空委托

◆ GetPropertySetter() [1/2]

template<typename T , typename TProperty >
static auto sw::Reflection::GetPropertySetter ( TProperty T::*  prop) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && !_IsWritableProperty<TProperty>::value, Delegate<void(DynamicObject &, typename TProperty::TSetterParam)>>::type
inlinestatic

获取属性的Setter委托

模板参数
T属性所属类类型
TProperty属性类型
参数
prop属性指针
返回
对应的Setter委托
注解
若属性不可写则返回空委托

◆ GetPropertySetter() [2/2]

template<typename T , typename TProperty >
static auto sw::Reflection::GetPropertySetter ( TProperty T::*  prop) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && _IsWritableProperty<TProperty>::value, Delegate<void(DynamicObject &, typename TProperty::TSetterParam)>>::type
inlinestatic

获取属性的Setter委托

模板参数
T属性所属类类型
TProperty属性类型
参数
prop属性指针
返回
对应的Setter委托
注解
若属性不可写则返回空委托

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