Skip to content

Latest commit

 

History

History
63 lines (48 loc) · 1.9 KB

File metadata and controls

63 lines (48 loc) · 1.9 KB

operator==

  • variant[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp17[meta cpp]
namespace std {
  template <class... Types>
  constexpr bool operator==(const variant<Types...>& x, const variant<Types...>& y);
}

概要

variantオブジェクトの等値比較を行う。

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

  • 全ての候補型インデックスIにおいて、式get<I>(x) == get<I>(y)によって返される型がboolに変換可能であること

戻り値

#include <cassert>
#include <variant>

int main()
{
  std::variant<int, char, double> a = 1;
  std::variant<int, char, double> b = 3.14;
  std::variant<int, char, double> c = 3;

  assert(a == a);    // 保持する型と値が同じ
  assert(b == b);    // 保持する型と値が同じ
  assert(!(a == b)); // 保持する型が異なる
  assert(!(a == c)); // 保持する型が同じだが、値が異なる
}

出力

バージョン

言語

  • C++17

処理系

参照