YSTest
PreAlpha_b500_20140530
The YSLib Test Project
|
基于类型擦除的动态泛型对象。 更多...
#include <any.h>
Public 成员函数 | |
any () | |
template<typename _type , typename = exclude_self_ctor_t<any, _type>> | |
any (_type &&x) | |
any (const any &) | |
any (any &&a) | |
~any () | |
template<typename _type > | |
any & | operator= (const _type &x) |
any & | operator= (const any &a) |
复制赋值:使用复制和交换。 更多... | |
any & | operator= (any &&a) |
转移赋值:使用复制和交换。 更多... | |
bool | operator! () const |
operator bool () const | |
bool | empty () const |
void * | get () const |
any_ops::holder * | get_holder () const |
void | clear () |
void | swap (any &a) |
const std::type_info & | type () const |
template<typename _type > | |
any (std::reference_wrapper< _type > x) | |
template<typename _tHolder > | |
any (any_ops::holder_tag, std::unique_ptr< _tHolder > p) | |
构造:使用指定持有者。 更多... | |
template<typename _type > | |
any (_type &&x, any_ops::holder_tag) | |
template<typename _type > | |
_type * | target () |
template<typename _type > | |
const _type * | target () const |
Protected 属性 | |
any_ops::any_storage | storage |
any_ops::any_manager | manager |
相关函数 | |
(请注意: 这些不是成员函数.) | |
template<typename _tPointer > | |
_tPointer | any_cast (any *p) |
动态泛型转换。 更多... | |
template<typename _tValue > | |
_tValue | any_cast (any &x) |
template<typename _type > | |
_type * | unsafe_any_cast (any *p) |
非安全动态泛型转换。 更多... | |
基于类型擦除的动态泛型对象。
|
inline |
|
inline |
|
inline |
|
inline |
ystdex::any::any | ( | const any & | a | ) |
参考 ystdex::any_ops::clone, manager , 以及 storage.
ystdex::any::~any | ( | ) |
void ystdex::any::clear | ( | ) |
参考 ystdex::any_ops::destroy, manager , 以及 storage.
void * ystdex::any::get | ( | ) | const |
参考 ystdex::pod_storage< _tPOD >::access(), ystdex::any_ops::get_ptr, manager , 以及 storage.
参考自 unsafe_any_cast().
any_ops::holder * ystdex::any::get_holder | ( | ) | const |
参考 ystdex::pod_storage< _tPOD >::access(), ystdex::any_ops::get_holder_ptr, manager , 以及 storage.
|
inline |
void ystdex::any::swap | ( | any & | a | ) |
const std::type_info & ystdex::any::type | ( | ) | const |
参考 ystdex::pod_storage< _tPOD >::access(), ystdex::any_ops::get_type, manager , 以及 storage.
参考自 any_cast() , 以及 ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::equals().
|
related |
动态泛型转换。
p && p->type() == typeid(remove_pointer_t<_tPointer>)
时 为指向对象的指针,否则为空指针。
|
related |
|
related |
|
protected |
参考自 any(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::any_input_iterator(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::check_undereferenceable(), clear(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::equals(), get(), get_holder(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::operator*(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::operator++(), ystdex::any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference >::operator--(), type() , 以及 ~any().
|
protected |
参考自 any(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::any_input_iterator(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::check_undereferenceable(), clear(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::equals(), get(), get_holder(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::operator*(), ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::operator++(), ystdex::any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference >::operator--(), type() , 以及 ~any().