Skip to content

Latest commit

 

History

History
62 lines (46 loc) · 1.85 KB

nullopt_t.md

File metadata and controls

62 lines (46 loc) · 1.85 KB

nullopt_t

  • optional[meta header]
  • std[meta namespace]
  • class[meta id-type]
  • cpp17[meta cpp]
namespace std {
  struct nullopt_t {以下参照};
  inline constexpr nullopt_t nullopt {unspecified};
}
  • unspecified[italic]

概要

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); // 有効な値を持たない
}
  • std::nullopt[color ff0000]

出力

バージョン

言語

  • C++17

処理系

関連項目

参照