|
| 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...)) -> Delegate< TRet(DynamicObject &, Args...)> |
| | 获取成员函数的委托
|
| |
| template<typename T , typename TRet , typename... Args> |
| static auto | GetMethod (TRet(T::*method)(Args...) const) -> Delegate< TRet(DynamicObject &, Args...)> |
| | 获取常量成员函数的委托
|
| |
| template<typename T , typename TField > |
| static auto | GetFieldAccessor (TField T::*field) -> Delegate< TField &(DynamicObject &)> |
| | 获取字段的访问器
|
| |
| template<typename T , typename TProperty > |
| static auto | GetPropertyGetter (TProperty T::*prop) -> typename std::enable_if< _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< _IsProperty< TProperty >::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< _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< _IsProperty< TProperty >::value &&!_IsWritableProperty< TProperty >::value, Delegate< void(DynamicObject &, typename TProperty::TSetterParam)> >::type |
| | 获取属性的Setter委托
|
| |
| template<typename T , typename TFunc , typename... Args> |
| static auto | InvokeMethod (const Delegate< TFunc > &method, T &obj, Args &&...args) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, decltype(method(obj, std::forward< Args >(args)...))>::type |
| | 调用成员函数
|
| |
| template<typename T , typename TFunc , typename... Args> |
| static auto | InvokeMethod (const Delegate< TFunc > &method, T &obj, Args &&...args) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value, decltype(method(std::declval< DynamicObject & >(), std::forward< Args >(args)...))>::type |
| | 调用成员函数
|
| |
| template<typename T , typename TField > |
| static auto | AccessField (const Delegate< TField &(DynamicObject &)> &accessor, T &obj) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, TField & >::type |
| | 访问字段
|
| |
| template<typename T , typename TField > |
| static auto | AccessField (const Delegate< TField &(DynamicObject &)> &accessor, T &obj) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value, TField & >::type |
| | 访问字段
|
| |
| template<typename T , typename TValue > |
| static auto | GetProperty (const Delegate< TValue(DynamicObject &)> &getter, T &obj) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, TValue >::type |
| | 获取属性值
|
| |
| template<typename T , typename TValue > |
| static auto | GetProperty (const Delegate< TValue(DynamicObject &)> &getter, T &obj) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value, TValue >::type |
| | 获取属性值
|
| |
| template<typename T , typename TParam , typename TValue > |
| static auto | SetProperty (const Delegate< void(DynamicObject &, TParam)> &setter, T &obj, TValue &&value) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value >::type |
| | 设置属性值
|
| |
| template<typename T , typename TParam , typename TValue > |
| static auto | SetProperty (const Delegate< void(DynamicObject &, TParam)> &setter, T &obj, TValue &&value) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value >::type |
| | 设置属性值
|
| |