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

履歴 編集

function
<variant>

std::variant::index(C++17)

constexpr std::size_t index() const noexcept;

概要

候補型の何番目の型が代入されているかを取得する。

variant<int, float, char> v;があったとして、float型が保持されている場合にこの関数は値1を返し、char型の場合は値2を返す。

戻り値

valueless_by_exception() == trueの場合、std::variant_nposを返す。そうでなければ、候補型のうち現在代入されている型が何番目かを、ゼロからはじまるインデックスとして返す。

#include <cassert>
#include <variant>

int main()
{
  // デフォルト構築時には0番目の型で初期化される
  std::variant<int, float, char> v{};
  assert(v.index() == 0);

  v = 3.14f;
  assert(v.index() == 1);

  v = 'a';
  assert(v.index() == 2);
}

出力

バージョン

言語

  • C++17

処理系