最終更新日時:
が更新

履歴 編集

function
<tuple>

std::operator==(C++11)

namespace std {
  template<class... TTypes, class... UTypes>
  bool operator==(const tuple<TTypes...>& t,
                  const tuple<UTypes...>& u);           // C++11

  template<class... TTypes, class... UTypes>
  constexpr bool operator==(const tuple<TTypes...>& t,
                            const tuple<UTypes...>& u); // C++14
}

概要

2つのtupleオブジェクトの等値比較を行う。

要件

  • 2つのtupleオブジェクトの要素数が同じであること。
  • tupleの要素std::get<i>(t)std::get<i>(u)において、すべての要素の比較 std::get<i>(t) == std::get<i>(u) の比較結果がboolに変換可能な型であること。

効果

0番目の要素から順に等値比較を行う。

戻り値

tupleの全ての要素をstd::get<i>(t) ==std::get<i>(u) した結果がtrueである場合trueを返し、そうでなければfalseを返す。

#include <iostream>
#include <tuple>
#include <string>

int main()
{
  std::tuple<int, char, const char*> t1(1, 'a', "hello");
  std::tuple<int, char, std::string> t2(1, 'a', "hello");
  std::tuple<int, char, std::string> t3(1, 'a', "hellot");

  std::cout << std::boolalpha;
  {
    bool result = t1 == t2; // ※型は異なっていてもかまわない
    std::cout << result << std::endl;
  }
  {
    bool result = t1 == t3;
    std::cout << result << std::endl;
  }
}

出力

true
false

バージョン

言語

  • C++11

処理系

参照