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

履歴 編集

function template
<iterator>

std::operator<=>(C++20)

namespace std {
  template <class Iterator1, three_way_comparable_with<Iterator1> Iterator2>
  constexpr compare_three_way_result_t<Iterator1, Iterator2>
    operator<=>(const reverse_iterator<Iterator1>& x,
                const reverse_iterator<Iterator2>& y); // (1) C++20
}

概要

reverse_iteratorオブジェクトの三方比較を行う。

戻り値

return y.base() <=> x.base();

備考

  • 逆順イテレータであるため、return文の引数順が逆になっている

#include <iostream>
#include <vector>
#include <iterator>

int main()
{
  std::vector<int> v = {1, 2, 3};

  std::reverse_iterator<decltype(v)::iterator> it1(v.end());
  std::reverse_iterator<decltype(v)::iterator> it2(v.end());

  if ((it1 <=> it2) == 0) {
    std::cout << "equal" << std::endl;
  }
  else {
    std::cout << "not equal" << std::endl;
  }
}

出力

equal

バージョン

言語

  • C++20

処理系

参照