所有権を共有するスマートポインタ (std::shared_ptr)
More...
#include <y3c/shared_ptr.h>
template<typename T>
class y3c::shared_ptr< T >
所有権を共有するスマートポインタ (std::shared_ptr)
- キャストするか unwrap() することで std::shared_ptr<T> (のconst参照)に戻せる。
- std::shared_ptr<T> のconstでない参照で取得して変更を加えることはできないようにしている。
- 初期化は std::make_shared<T> または y3c::make_shared<T> で行う。 生ポインタ(newで初期化したものなど)を受け取ることはできない。
- std::shared_ptr と相互変換できるが、 y3cが管理するオブジェクトの寿命の情報を std::shared_ptr は保持していないので、 y3c::shared_ptr を破棄し std::shared_ptr が残っている場合でも参照先のオブジェクトは破棄されたと判断されてしまう。
- See also
- shared_ptr - cpprefjp
- Examples
- shared_ptr-null.cc, shared_ptr-ref.cc, and shared_ptr-unwrap-ref.cc.
◆ element_type
◆ shared_ptr() [1/7]
◆ shared_ptr() [2/7]
◆ shared_ptr() [3/7]
◆ ~shared_ptr()
◆ shared_ptr() [4/7]
template<typename T >
template<typename U >
◆ shared_ptr() [5/7]
template<typename T >
template<typename U >
◆ shared_ptr() [6/7]
template<typename T >
template<typename U >
別の要素型のshared_ptrとリソースを共有する
◆ shared_ptr() [7/7]
template<typename T >
template<typename U >
◆ get()
◆ operator bool()
◆ operator const std::shared_ptr &()
template<typename T >
operator const std::shared_ptr & |
( |
| ) |
const |
|
inlinenoexcept |
const std::shared_ptr へのキャスト
◆ operator wrap< const shared_ptr & >()
◆ operator&()
◆ operator*()
template<typename T >
template<typename E = element_type, typename = internal::skip_trace_tag>
◆ operator->()
template<typename T >
template<typename = internal::skip_trace_tag>
メンバアクセス
- 参照先が生きていない場合terminateする。
- 返り値は元のelement_type型の参照で返るので、 メンバアクセスは通常のポインタと同様に行える。
◆ operator=() [1/6]
◆ operator=() [2/6]
template<typename T >
template<typename U >
別の要素型のshared_ptrとリソースを共有する
◆ operator=() [3/6]
template<typename T >
template<typename U >
shared_ptr & operator= |
( |
const std::shared_ptr< U > & |
ptr | ) |
|
|
inline |
◆ operator=() [4/6]
◆ operator=() [5/6]
template<typename T >
template<typename U >
◆ operator=() [6/6]
template<typename T >
template<typename U >
shared_ptr & operator= |
( |
std::shared_ptr< U > && |
ptr | ) |
|
|
inline |
◆ owner_before()
template<typename T >
bool owner_before |
( |
const shared_ptr< T > & |
arg | ) |
const |
|
inline |
◆ reset()
◆ swap()
◆ use_count()
所有権を共有しているshared_ptrの数を取得
- std::shared_ptr の use_count を返す。 std::shared_ptr と y3c::shared_ptr で共有されている場合、 y3c側のオブジェクト寿命管理とは無関係。
◆ shared_ptr
template<typename T >
template<typename U >
The documentation for this class was generated from the following file: