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

动态对象基类 更多...

#include <Reflection.h>

类 sw::DynamicObject 继承关系图:
sw::BoxedObject< T, typename std::enable_if<!std::is_base_of< DynamicObject, T >::value >::type > sw::ObservableObject sw::WndBase sw::NotifyIcon sw::Timer sw::ToolTip sw::UIElement sw::BallonToolTip sw::Control sw::HwndWrapper sw::Layer sw::ItemsControl< StrList > sw::ItemsControl< TreeViewNode > sw::Animation sw::ButtonBase sw::DateTimePicker sw::HotKeyControl sw::ItemsControl< TItem > sw::MonthCalendar sw::PanelBase sw::ProgressBar sw::Slider sw::Splitter sw::StaticControl sw::StatusBar sw::SysLink sw::TabControl sw::TextBoxBase sw::PanelBase sw::Window

Public 成员函数

 DynamicObject () noexcept
 默认构造函数
 
virtual ~DynamicObject ()
 析构函数
 
bool IsBoxedObject () const noexcept
 判断对象是否为装箱对象
 
std::type_index GetTypeIndex () const
 获取对象的类型索引
 
template<typename T >
auto IsType (T **pout=nullptr) -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, bool >::type
 判断对象是否为指定类型
 
template<typename T >
auto IsType (const T **pout=nullptr) const -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, bool >::type
 判断对象是否为指定类型
 
template<typename T >
auto DynamicCast () -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, T & >::type
 将对象动态转换为指定类型的引用
 
template<typename T >
auto DynamicCast () const -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value, const T & >::type
 将对象动态转换为指定类型的常量引用
 
template<typename T >
auto UnsafeCast () -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&_IsStaticCastable< DynamicObject *, T * >::value, T & >::type
 将对象不安全地转换为指定类型的引用
 
template<typename T >
auto UnsafeCast () -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&!_IsStaticCastable< DynamicObject *, T * >::value, T & >::type
 将对象不安全地转换为指定类型的引用
 
template<typename T >
auto UnsafeCast () const -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&_IsStaticCastable< DynamicObject *, T * >::value, const T & >::type
 将对象不安全地转换为指定类型的引用
 
template<typename T >
auto UnsafeCast () const -> typename std::enable_if< std::is_base_of< DynamicObject, T >::value &&!_IsStaticCastable< DynamicObject *, T * >::value, const T & >::type
 将对象不安全地转换为指定类型的引用
 
template<typename T >
auto IsType (T **pout=nullptr) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type
 判断对象是否为指定类型
 
template<typename T >
auto IsType (T **pout=nullptr) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type
 判断对象是否为指定类型
 
template<typename T >
auto IsType (const T **pout=nullptr) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type
 判断对象是否为指定类型
 
template<typename T >
auto IsType (const T **pout=nullptr) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type
 判断对象是否为指定类型
 
template<typename T >
auto DynamicCast () -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, T & >::type
 将对象动态转换为指定类型的引用
 
template<typename T >
auto DynamicCast () -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, T & >::type
 将对象动态转换为指定类型的引用
 
template<typename T >
auto DynamicCast () const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, const T & >::type
 将对象动态转换为指定类型的常量引用
 
template<typename T >
auto DynamicCast () const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, const T & >::type
 将对象动态转换为指定类型的常量引用
 
template<typename T >
auto UnsafeCast () -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsStaticCastable< DynamicObject *, T * >::value, T & >::type
 将对象不安全地转换为指定类型的引用
 
template<typename T >
auto UnsafeCast () -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsStaticCastable< DynamicObject *, T * >::value, T & >::type
 将对象不安全地转换为指定类型的引用
 
template<typename T >
auto UnsafeCast () const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsStaticCastable< DynamicObject *, T * >::value, const T & >::type
 将对象不安全地转换为指定类型的引用
 
template<typename T >
auto UnsafeCast () const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsStaticCastable< DynamicObject *, T * >::value, const T & >::type
 将对象不安全地转换为指定类型的引用
 

友元

template<typename , typename >
class BoxedObject
 允许BoxedObject访问_isBoxedObject成员
 

详细描述

动态对象基类

成员函数说明

◆ DynamicCast() [1/6]

template<typename T >
auto sw::DynamicObject::DynamicCast ( ) -> typename std::enable_if<std::is_base_of<DynamicObject, T>::value, T &>::type
inline

将对象动态转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
异常
std::bad_cast如果转换失败

◆ DynamicCast() [2/6]

template<typename T >
auto sw::DynamicObject::DynamicCast ( ) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, T & >::type

将对象动态转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
异常
std::bad_cast如果转换失败

◆ DynamicCast() [3/6]

template<typename T >
auto sw::DynamicObject::DynamicCast ( ) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, T & >::type

将对象动态转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
异常
std::bad_cast如果转换失败

◆ DynamicCast() [4/6]

template<typename T >
auto sw::DynamicObject::DynamicCast ( ) const -> typename std::enable_if<std::is_base_of<DynamicObject, T>::value, const T &>::type
inline

将对象动态转换为指定类型的常量引用

模板参数
T目标类型
返回
指定类型的常量引用
异常
std::bad_cast如果转换失败

◆ DynamicCast() [5/6]

template<typename T >
auto sw::DynamicObject::DynamicCast ( ) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, const T & >::type

将对象动态转换为指定类型的常量引用

模板参数
T目标类型
返回
指定类型的常量引用
异常
std::bad_cast如果转换失败

◆ DynamicCast() [6/6]

template<typename T >
auto sw::DynamicObject::DynamicCast ( ) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, const T & >::type

将对象动态转换为指定类型的常量引用

模板参数
T目标类型
返回
指定类型的常量引用
异常
std::bad_cast如果转换失败

◆ GetTypeIndex()

std::type_index sw::DynamicObject::GetTypeIndex ( ) const
inline

获取对象的类型索引

返回
对象的类型索引

◆ IsBoxedObject()

bool sw::DynamicObject::IsBoxedObject ( ) const
inlinenoexcept

判断对象是否为装箱对象

返回
如果对象为装箱对象则返回true,否则返回false

◆ IsType() [1/6]

template<typename T >
auto sw::DynamicObject::IsType ( const T **  pout = nullptr) const -> typename std::enable_if<std::is_base_of<DynamicObject, T>::value, bool>::type
inline

判断对象是否为指定类型

模板参数
T目标类型
参数
pout如果不为nullptr,则将转换后的指针赋值给该参数
返回
如果对象为指定类型则返回true,否则返回false

◆ IsType() [2/6]

template<typename T >
auto sw::DynamicObject::IsType ( const T **  pout = nullptr) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type

判断对象是否为指定类型

模板参数
T目标类型
参数
pout如果不为nullptr,则将转换后的指针赋值给该参数
返回
如果对象为指定类型则返回true,否则返回false

◆ IsType() [3/6]

template<typename T >
auto sw::DynamicObject::IsType ( const T **  pout = nullptr) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type

判断对象是否为指定类型

模板参数
T目标类型
参数
pout如果不为nullptr,则将转换后的指针赋值给该参数
返回
如果对象为指定类型则返回true,否则返回false

◆ IsType() [4/6]

template<typename T >
auto sw::DynamicObject::IsType ( T **  pout = nullptr) -> typename std::enable_if<std::is_base_of<DynamicObject, T>::value, bool>::type
inline

判断对象是否为指定类型

模板参数
T目标类型
参数
pout如果不为nullptr,则将转换后的指针赋值给该参数
返回
如果对象为指定类型则返回true,否则返回false

◆ IsType() [5/6]

template<typename T >
auto sw::DynamicObject::IsType ( T **  pout = nullptr) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type

判断对象是否为指定类型

模板参数
T目标类型
参数
pout如果不为nullptr,则将转换后的指针赋值给该参数
返回
如果对象为指定类型则返回true,否则返回false

◆ IsType() [6/6]

template<typename T >
auto sw::DynamicObject::IsType ( T **  pout = nullptr) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsDynamicCastable< DynamicObject *, T * >::value, bool >::type

判断对象是否为指定类型

模板参数
T目标类型
参数
pout如果不为nullptr,则将转换后的指针赋值给该参数
返回
如果对象为指定类型则返回true,否则返回false

◆ UnsafeCast() [1/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && !_IsStaticCastable<DynamicObject *, T *>::value, T &>::type
inline

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

◆ UnsafeCast() [2/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && _IsStaticCastable<DynamicObject *, T *>::value, T &>::type
inline

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

◆ UnsafeCast() [3/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsStaticCastable< DynamicObject *, T * >::value, T & >::type

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

◆ UnsafeCast() [4/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsStaticCastable< DynamicObject *, T * >::value, T & >::type

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

◆ UnsafeCast() [5/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) const -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && !_IsStaticCastable<DynamicObject *, T *>::value, const T &>::type
inline

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

◆ UnsafeCast() [6/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) const -> typename std::enable_if< std::is_base_of<DynamicObject, T>::value && _IsStaticCastable<DynamicObject *, T *>::value, const T &>::type
inline

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

◆ UnsafeCast() [7/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&!_IsStaticCastable< DynamicObject *, T * >::value, const T & >::type

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

◆ UnsafeCast() [8/8]

template<typename T >
auto sw::DynamicObject::UnsafeCast ( ) const -> typename std::enable_if<!std::is_base_of< DynamicObject, T >::value &&_IsStaticCastable< DynamicObject *, T * >::value, const T & >::type

将对象不安全地转换为指定类型的引用

模板参数
T目标类型
返回
指定类型的引用
注解
若目标类型与当前类型不兼容,则行为未定义

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