最終更新日時(UTC):
が更新

履歴 編集

function
<optional>

std::optional::デストラクタ(C++17)

~optional();           // C++17
constexpr ~optional(); // C++23

概要

optionalオブジェクトを破棄する

効果

有効値を保持している場合、型Tが非トリビアルなデストラクタを持っているならデストラクタを呼び出す。有効値を保持していない場合は、なにもしない。

#include <optional>

struct A {
  // ユーザー定義のデストラクタを持つ
  ~A()
  {
  }
};

struct B {
  // ユーザー定義のデストラクタを持たない
};

struct C {
  A a;

  // ユーザー定義のデストラクタを持つ。
  // (ユーザー定義のデストラクタを持つ型のメンバ変数を持っている)
};

int main()
{
  std::optional<A> a;
  std::optional<B> b;
  std::optional<C> c;

  std::optional<int> opt_int;
} // Aのデストラクタが呼ばれる
  // Bのデストラクタは呼ばれない
  // Cのデストラクタは呼ばれる
  // opt_intのデストラクタは呼ばれない

出力

バージョン

言語

  • C++17

処理系

関連項目