friend constexpr bool operator<=(strong_ordering v, /*unspecified*/) noexcept; // (1)
friend constexpr bool operator<=(/*unspecified*/, strong_ordering v) noexcept; // (2)
概要
- (1) :
strong_ordering
の値がstrong_ordering::less
もしくはequal
であるかを調べる。 - (2) :
strong_ordering
の値がstrong_ordering::greater
もしくはequal
であるかを調べる。
戻り値
int
型のメンバ変数value
に各有効値に対応する値を保持しているとして、以下と等価
- (1) :
return v.value <= 0
- (2) :
return 0 <= v.value
例外
投げない。
備考
それぞれunspecifiedとなっている片側の引数には0
リテラルのみが使用できる。それ以外の物を渡した場合、動作は未定義。
例
#include <iostream>
#include <compare>
int main()
{
std::strong_ordering comp1 = 1 <=> 2;
std::strong_ordering comp2 = 1 <=> 1;
std::cout << std::boolalpha;
// (1)
std::cout << (comp1 <= 0) << std::endl;
std::cout << (comp2 <= 0) << std::endl;
// (2)
std::cout << (0 <= comp1) << std::endl;
std::cout << (0 <= comp2) << std::endl;
}
出力
true
true
false
true
バージョン
言語
- C++20
処理系
- Clang: 8.0 ✅
- GCC: 10.1 ✅
- Visual C++: 2019 ✅