UniquePtr
はポインタの所有権を保持し、UniquePtr
がスコープから出るときにデストラクタでポインタをDELで指定した方法により解放します。
[詳解]
#include "nn/nlib/UniquePtr.h"
nn::nlib::detail::UniquePtrBase< T, DEL, DEL_EMPTY >を継承しています。
template<class T, class DEL = DefaultDelete<T>>
class nn::nlib::UniquePtr< T, DEL >
UniquePtr
はポインタの所有権を保持し、UniquePtr
がスコープから出るときにデストラクタでポインタをDELで指定した方法により解放します。
- テンプレート引数
-
T | オブジェクトの型 |
DEL | デリータの型。デフォルトではdelete/delete[] を実行します。 |
- 説明
- 以下のように記述してください。
UniquePtr<MyObject> myObjPtr(new MyObject());
UniquePtr<char[]> myArrayPtr(new char[1024]);
- UniquePtr同士の比較関数としては、
operator==()
とoperator!=()
が実装されています。 また、配列へのポインタが設定された場合、operator[]
を利用することが可能です。
- なお、C++11環境(テンプレートエイリアスが可能な環境)においては
std::unique_ptr
にテンプレートエイリアスされます。
- 内部実装メモ
- 現在の実装では、基底クラスの
UniquePtr
に派生クラスのUniquePtr
を代入することはできません。
- 各種例:
- exi/multithread/multithread.cpp, exi/script/script.cpp, exi/simple1/simple1.cpp, exi/simple2/simple2.cpp, exi/textparser/textparser.cpp, misc/threading/future/future.cpp, msgpack/json/json.cpp, msgpack/jsonrpc/jsonrpc.cpp, msgpack/jsonrpc/server.cpp, msgpack/msgpack1/msgpack1.cpp, msgpack/msgpack2/msgpack2.cpp, oss/binarypatch/binarypatch.cpp, succinct/ngc/ngc.cpp.
UniquePtr.h の 109 行目に定義があります。
◆ UniquePtr() [1/2]
template<class T, class DEL = DefaultDelete<T>>
◆ UniquePtr() [2/2]
template<class T, class DEL = DefaultDelete<T>>
◆ release()
template<class T, class DEL = DefaultDelete<T>>
◆ reset()
template<class T, class DEL = DefaultDelete<T>>
◆ swap()
template<class T, class DEL = DefaultDelete<T>>
このクラス詳解は次のファイルから抽出されました: