default_delete
は、リソースを自動的に解放するスマートポインタクラスである
unique_ptr
において、デフォルトで使用されるデリータクラスである。
unique_ptr
が配列を所有できるようにするため、
T[]
時には
delete[]
を呼びだすように特殊化される。
型
T
が
不完全型
である場合、
operator()
の実行は
不適格
となる。
単一オブジェクト版のメンバ関数
対応バージョン
template<class U> default_delete()(default_delete<U> const& other) noexcept;
変換可能な型からのコピーコンストラクタ。
C++11
C++23からconstexpr指定
~default_delete() = default;
デストラクタ
C++11
void operator()(T* ptr) const;
関数呼び出し演算子。渡されたポインタ
ptr
を
delete ptr;
で削除する
C++11
C++23からconstexpr指定
配列版のメンバ関数
対応バージョン
template <class U> default_delete()(const default_delete<U[]>&) noexcept;
変換可能な型からのコピーコンストラクタ。
C++17
C++23からconstexpr指定
~default_delete() = default;
デストラクタ
C++11
void operator()(T* ptr) const;
template <class U>
void operator()(U*) const = delete;
関数呼び出し演算子。渡されたポインタ
ptr
を
delete[] ptr;
で削除する
C++11
C++14まで
template <class U> void operator()(U* ptr) const;
関数呼び出し演算子。渡されたポインタ
ptr
を
delete[] ptr;
で削除する。変換可能な型の配列へのポインタも削除可能。
C++17
C++23からconstexpr指定