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

履歴 編集

function template
<utility>

std::pair::operator<=>

friend constexpr common_comparison_category_t<synth-three-way-result<T1>, synth-three-way-result<T2>>
   operator<=>(const pair& x, const pair& y);

概要

2つのpairの三方比較を行う。

効果

以下と等価:

if (auto c = synth-three-way(x.first, y.first); c != 0)
  return c;
return synth-three-way(x.second, y.second);

備考

  • この演算子により、以下の演算子が使用可能になる (C++20):
    • operator<
    • operator<=
    • operator>
    • operator>=

#include <cassert>
#include <utility>
#include <string>

int main()
{
  std::pair<int, std::string> p1(1, "aaa");
  std::pair<int, std::string> p2(1, "aaa");
  std::pair<int, std::string> p3(2, "bbb");

  assert((p1 <=> p2) == 0);
  assert((p1 <=> p3) != 0);
  assert(p1 < p3);
  assert(p1 <= p3);
  assert(p3 > p1);
  assert(p3 >= p1);
}

出力

参照