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

履歴 編集

function
<compare>

std::is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq(C++20)

namespace std {
  constexpr bool is_eq  (partial_ordering cmp) noexcept;     // (1)
  constexpr bool is_neq (partial_ordering cmp) noexcept;     // (2)
  constexpr bool is_lt  (partial_ordering cmp) noexcept;  // (3)
  constexpr bool is_lteq(partial_ordering cmp) noexcept;  // (4)
  constexpr bool is_gt  (partial_ordering cmp) noexcept;  // (5)
  constexpr bool is_gteq(partial_ordering cmp) noexcept;  // (6)
}

概要

任意の<=>による比較結果のカテゴリ型の値から、bool値としての結果を取り出す。

戻り値

  • (1) : return cmp == 0;
  • (2) : return cmp != 0;
  • (3) : return cmp < 0;
  • (4) : return cmp <= 0;
  • (5) : return cmp > 0;
  • (6) : return cmp >= 0;

#include <iostream>
#include <compare>

int main()
{
  std::strong_ordering comp1 = 1 <=> 2;
  std::strong_ordering comp2 = 3 <=> 3;

  std::cout << std::boolalpha;

  // (1)
  std::cout << std::is_eq(comp1) << std::endl;
  std::cout << std::is_eq(comp2) << std::endl;
  std::cout << "\n";

  // (2)
  std::cout << std::is_neq(comp1) << std::endl;
  std::cout << std::is_neq(comp2) << std::endl;
  std::cout << "\n";

  // (3)
  std::cout << std::is_lt(comp1) << std::endl;
  std::cout << std::is_lt(comp2) << std::endl;
  std::cout << "\n";

  // (4)
  std::cout << std::is_lteq(comp1) << std::endl;
  std::cout << std::is_lteq(comp2) << std::endl;
  std::cout << "\n";

  // (5)
  std::cout << std::is_gt(comp1) << std::endl;
  std::cout << std::is_gt(comp2) << std::endl;
  std::cout << "\n";

  // (6)
  std::cout << std::is_gteq(comp1) << std::endl;
  std::cout << std::is_gteq(comp2) << std::endl;
}

出力

false
true

true
false

true
false

true
true

false
false

false
true

実装例

constexpr bool is_eq  (partial_ordering cmp) noexcept    { return cmp == 0; }
constexpr bool is_neq (partial_ordering cmp) noexcept    { return cmp != 0; }
constexpr bool is_lt  (partial_ordering cmp) noexcept { return cmp <  0; }
constexpr bool is_lteq(partial_ordering cmp) noexcept { return cmp <= 0; }
constexpr bool is_gt  (partial_ordering cmp) noexcept { return cmp >  0; }
constexpr bool is_gteq(partial_ordering cmp) noexcept { return cmp >= 0; }

バージョン

言語

  • C++20

処理系

関連項目

参照