最終更新日時: 2023年01月23日 17時34分13秒 (JST)
yoh が更新

履歴 編集

function
<memory>

# std::inout_ptr_t::operator void**(C++23)

    operator void**() const noexcept;

## 概要

`Pointer`型の説明用メンバ変数へのポインタ値を、`void**`型にキャストして取得する。

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

`is_same_v<Pointer, void*>`が`false`であること

## 適格要件

`is_pointer_v<Pointer>`が`true`であること

## 事前条件

`*this`の`operator Pointer*()`が呼び出されていないこと

## 戻り値

次のポインタ値`v`を返す :

- 初期値`*v`は`static_cast<void*>(p)`と等価であり、かつ
- `*this`の後続変更に続かない`*v`の変更は、`static_cast<void*>(p) == *v`のように、`*this` デストラクト中の`p`の値に影響を与える。

## 例外

投げない

## 備考

`*this`の生存期間外での`*v`へのアクセスは未定義動作

## バージョン

### 言語

- C++23

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??

## 関連項目

- `inout_ptr()`

## 参照

- P1132R8 out_ptr - a scalable output pointer abstraction