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

通用变体类,用于存储任意类型的对象 更多...

#include <Variant.h>

类 sw::Variant 继承关系图:
sw::IEqualityComparable< Variant >

Public 成员函数

 Variant ()=default
 默认构造函数,创建一个空的Variant对象
 
template<typename T , typename std::enable_if<!std::is_same< Variant, typename std::decay< T >::type >::value, int >::type = 0>
 Variant (T &&obj)
 通用构造函数,接受任意类型的对象
 
 Variant (const Variant &other)
 拷贝构造函数
 
 Variant (Variant &&other) noexcept
 移动构造函数
 
Variantoperator= (const Variant &other)
 拷贝构造函数
 
Variantoperator= (Variant &&other) noexcept
 移动构造函数
 
 operator bool () const noexcept
 布尔转换运算符,判断Variant对象是否为空
 
bool IsNull () const noexcept
 判断Variant对象是否为空
 
bool Equals (const Variant &other) const noexcept
 判断两Variant是否为同一对象
 
void Reset ()
 重置Variant对象为空
 
void Reset (const Variant &other)
 重置Variant对象为另一个Variant对象的值
 
void Reset (Variant &&other) noexcept
 重置Variant对象为另一个Variant对象的值
 
template<typename T >
auto Reset (T &&obj) -> typename std::enable_if< !std::is_same< Variant, typename std::decay< T >::type >::value &&std::is_base_of< DynamicObject, typename std::decay< T >::type >::value >::type
 重置Variant对象为指定类型的对象
 
template<typename T >
auto Reset (T &&obj) -> typename std::enable_if< !std::is_same< Variant, typename std::decay< T >::type >::value &&!std::is_base_of< DynamicObject, typename std::decay< T >::type >::value >::type
 重置Variant对象为指定类型的对象
 
DynamicObjectObject () const noexcept
 获取内部动态对象指针
 
template<typename T >
bool IsType (T **pout=nullptr)
 判断当前Variant存储的对象是否为指定类型
 
template<typename T >
bool IsType (const T **pout=nullptr) const
 判断当前Variant存储的对象是否为指定类型
 
template<typename T >
T & DynamicCast ()
 将Variant对象动态转换为指定类型的引用
 
template<typename T >
const T & DynamicCast () const
 将Variant对象动态转换为指定类型的常量引用
 
template<typename T >
T & UnsafeCast ()
 将Variant对象转换为指定类型的引用
 
template<typename T >
const T & UnsafeCast () const
 将Variant对象转换为指定类型的常量引用
 
- Public 成员函数 继承自 sw::IEqualityComparable< Variant >
bool Equals (const Variant & other) const
 判断当前对象与另一个对象是否相等
 
bool operator== (const Variant & other) const
 判断当前对象是否与另一个对象相等
 
bool operator!= (const Variant & other) const
 判断当前对象是否与另一个对象不相等
 

详细描述

通用变体类,用于存储任意类型的对象

成员函数说明

◆ DynamicCast() [1/2]

template<typename T >
T & sw::Variant::DynamicCast ( )
inline

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

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

◆ DynamicCast() [2/2]

template<typename T >
const T & sw::Variant::DynamicCast ( ) const
inline

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

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

◆ IsNull()

bool sw::Variant::IsNull ( ) const
inlinenoexcept

判断Variant对象是否为空

返回
若Variant对象为空则返回true,否则返回false

◆ IsType() [1/2]

template<typename T >
bool sw::Variant::IsType ( const T **  pout = nullptr) const
inline

判断当前Variant存储的对象是否为指定类型

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

◆ IsType() [2/2]

template<typename T >
bool sw::Variant::IsType ( T **  pout = nullptr)
inline

判断当前Variant存储的对象是否为指定类型

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

◆ Object()

DynamicObject * sw::Variant::Object ( ) const
inlinenoexcept

获取内部动态对象指针

返回
内部动态对象指针

◆ operator bool()

sw::Variant::operator bool ( ) const
inlinenoexcept

布尔转换运算符,判断Variant对象是否为空

返回
若Variant对象不为空则返回true,否则返回false

◆ operator=()

Variant & sw::Variant::operator= ( const Variant other)
inline

拷贝构造函数

异常
std::runtime_error如果对象不可拷贝

◆ Reset() [1/3]

void sw::Variant::Reset ( const Variant other)
inline

重置Variant对象为另一个Variant对象的值

异常
std::runtime_error如果对象不可拷贝

◆ Reset() [2/3]

template<typename T >
auto sw::Variant::Reset ( T &&  obj) -> typename std::enable_if< !std::is_same<Variant, typename std::decay<T>::type>::value && !std::is_base_of<DynamicObject, typename std::decay<T>::type>::value>::type
inline

重置Variant对象为指定类型的对象

模板参数
T对象类型
参数
obj对象

◆ Reset() [3/3]

template<typename T >
auto sw::Variant::Reset ( T &&  obj) -> typename std::enable_if< !std::is_same<Variant, typename std::decay<T>::type>::value && std::is_base_of<DynamicObject, typename std::decay<T>::type>::value>::type
inline

重置Variant对象为指定类型的对象

模板参数
T对象类型
参数
obj对象

◆ UnsafeCast() [1/2]

template<typename T >
T & sw::Variant::UnsafeCast ( )
inline

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

模板参数
T目标类型
返回
指定类型的引用
异常
std::bad_cast如果Variant为空
注解
若目标类型与存储类型不匹配,则行为未定义

◆ UnsafeCast() [2/2]

template<typename T >
const T & sw::Variant::UnsafeCast ( ) const
inline

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

模板参数
T目标类型
返回
指定类型的常量引用
异常
std::bad_cast如果Variant为空
注解
若目标类型与存储类型不匹配,则行为未定义

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