Skip to content

Latest commit

 

History

History
56 lines (39 loc) · 1.9 KB

inout_ptr_t.md

File metadata and controls

56 lines (39 loc) · 1.9 KB

inout_ptr_t

  • memory[meta header]
  • class template[meta id-type]
  • std[meta namespace]
  • cpp23[meta cpp]
namespace std {
  template<class Smart, class Pointer, class... Args>
  class inout_ptr_t;
}

概要

2重ポインタT**(=Pointer*)引数経由で既存リソースを解放してから新規確保リソースへのポインタを返すレガシーC関数に対して、取得されたポインタ値をスマートポインタに格納するアダプタクラス。 アダプタオブジェクトの生成には、std::inout_ptr()ヘルパ関数を利用する。

C++標準スマートポインタstd::unique_ptrを始め、互換インタフェースをもつ任意のスマートポインタ型Smartを取り扱える。

テンプレートパラメータ制約

PointerはCpp17NullablePointer要件を満たすこと

適格要件

Smartshared_ptrの特殊化の場合、プログラムは不適格となる。

メンバ関数

名前 説明 対応バージョン
(constructor) コンストラクタ C++23
(destructor) デストラクタ C++23
operator Pointer*() Pointer*への暗黙変換 C++23
operator void**() void**への暗黙変換 C++23

バージョン

言語

  • C++23

処理系

関連項目

参照