値型wrap: base_type型のデータと、このデータの生存状態を管理するクラス
More...
#include <y3c/wrap.h>
|
| wrap () |
| デフォルト構築
|
|
| wrap (const wrap &other) |
| コピーコンストラクタ
|
|
| wrap (wrap &&other) |
| ムーブコンストラクタ
|
|
wrap & | operator= (const wrap &other) |
| コピー代入
|
|
wrap & | operator= (wrap &&other) |
| ムーブ代入
|
|
| ~wrap ()=default |
|
template<typename... Args> |
| wrap (Args &&...args) |
| コンストラクタ引数はそのままbase_typeのコンストラクタに渡される。
|
|
template<typename V > |
wrap & | operator= (V &&args) |
| 引数はそのままbase_typeのoperator=()に渡される。
|
|
| operator base_type & () noexcept |
| base_type へのキャスト
|
|
| operator const base_type & () const noexcept |
| const base_type へのキャスト
|
|
template<typename T = base_type, typename E = typename std::remove_extent<base_type>::type, typename std::enable_if< std::is_array< T >::value, std::nullptr_t >::type = nullptr, typename = internal::skip_trace_tag> |
wrap< E & > | operator[] (std::ptrdiff_t i) |
| base_typeが E[N] の形の場合、要素への参照を返す
|
|
template<typename T = base_type, typename E = typename std::remove_extent<base_type>::type, typename std::enable_if< std::is_array< T >::value, std::nullptr_t >::type = nullptr, typename = internal::skip_trace_tag> |
wrap< const E & > | operator[] (std::ptrdiff_t i) const |
| base_typeが E[N] の形の場合、要素への参照を返す(const)
|
|
wrap< base_type * > | operator& () |
|
wrap< const base_type * > | operator& () const |
|
|
template<typename > |
class | wrap |
|
template<typename base_type>
class y3c::wrap< base_type >
値型wrap: base_type型のデータと、このデータの生存状態を管理するクラス
- キャストするか unwrap() することでbase_type型(の参照)に戻せる。
&
をつけるとbase_typeのポインタをラップした y3c::wrap<base_type*> が得られる
- base_typeが E[N] の形の場合、
[ ]
で要素アクセスできる (参照をラップした y3c::wrap<E&> が得られる)
- E のポインタをラップした y3c::wrap<E*> にもキャストできる
- Examples
- array-ptr-local.cc, array-ptr.cc, ptr-inc.cc, ptr-local.cc, ptr-null.cc, shared_ptr-ref.cc, shared_ptr-unwrap-ref.cc, vector-ptr-local.cc, vector-ptr-reallocate.cc, wrap_array-ptr-local.cc, wrap_array-ptr.cc, and wrap_array-range.cc.
◆ wrap() [1/4]
template<typename base_type >
◆ wrap() [2/4]
template<typename base_type >
◆ wrap() [3/4]
template<typename base_type >
◆ ~wrap()
template<typename base_type >
◆ wrap() [4/4]
template<typename base_type >
template<typename... Args>
コンストラクタ引数はそのままbase_typeのコンストラクタに渡される。
◆ operator base_type &()
template<typename base_type >
◆ operator const base_type &()
template<typename base_type >
operator const base_type & |
( |
| ) |
const |
|
inlinenoexcept |
◆ operator&() [1/2]
template<typename base_type >
wrap< base_type * > operator& |
( |
| ) |
|
|
inline |
◆ operator&() [2/2]
template<typename base_type >
wrap< const base_type * > operator& |
( |
| ) |
const |
|
inline |
◆ operator=() [1/3]
template<typename base_type >
wrap & operator= |
( |
const wrap< base_type > & |
other | ) |
|
|
inline |
◆ operator=() [2/3]
template<typename base_type >
template<typename V >
wrap & operator= |
( |
V && |
args | ) |
|
|
inline |
引数はそのままbase_typeのoperator=()に渡される。
◆ operator=() [3/3]
template<typename base_type >
wrap & operator= |
( |
wrap< base_type > && |
other | ) |
|
|
inline |
◆ operator[]() [1/2]
template<typename base_type >
template<typename T = base_type, typename E = typename std::remove_extent<base_type>::type, typename std::enable_if< std::is_array< T >::value, std::nullptr_t >::type = nullptr, typename = internal::skip_trace_tag>
wrap< E & > operator[] |
( |
std::ptrdiff_t |
i | ) |
|
|
inline |
◆ operator[]() [2/2]
template<typename base_type >
template<typename T = base_type, typename E = typename std::remove_extent<base_type>::type, typename std::enable_if< std::is_array< T >::value, std::nullptr_t >::type = nullptr, typename = internal::skip_trace_tag>
wrap< const E & > operator[] |
( |
std::ptrdiff_t |
i | ) |
const |
|
inline |
base_typeが E[N] の形の場合、要素への参照を返す(const)
- インデックスが範囲外の場合terminateする。
◆ wrap
template<typename base_type >
template<typename >
◆ base_
template<typename base_type >
◆ life_
template<typename base_type >
The documentation for this class was generated from the following file: