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

履歴 編集

class
<optional>

std::nullopt_t(C++17)

namespace std {
  struct nullopt_t {以下参照};
  inline constexpr nullopt_t nullopt {unspecified};
}

概要

nullopt_tは、実装を持たない空のクラスである。この型は、std::optionalクラスにおいて、有効な値を保持していない状態を表すために使用される。

この型の値を持つnullopt定数をstd::optionalクラスのオブジェクトに代入することで、有効な値を保持していない状態にできる。

nullopt_tクラスは、デフォルトコンストラクタおよび初期化子リストコンストラクタを持たない。これは、nullopt変数をnullopt_t型の唯一の値とするためである。また、nullopt_t集成体ではない。これはoptional<T> opt = {};を曖昧にしないためである。

#include <cassert>
#include <optional>

int main()
{
  std::optional<int> p;
  assert(!p); // デフォルトでは有効な値を持たない (nullopt状態)

  p = 3; // 有効値を代入
  assert(p); // 有効な値を持つ

  p = std::nullopt; // 無効値を代入
  assert(!p); // 有効な値を持たない
}

出力

バージョン

言語

  • C++17

処理系

関連項目

参照