namespace std {
template<class charT, class traits>
constexpr see below
operator<=>(basic_string_view<charT, traits> x,
basic_string_view<charT, traits> y) noexcept; // (1) C++20
}
概要
basic_string_view
オブジェクトの三方比較を行う。
戻り値
戻り値の型R
は、traits::comparison_category
が存在していればその型、そうでなければweak_ordering
となり、以下と等価:
return static_cast<R>(x.compare(y) <=> 0);
備考
- この演算子により、以下の演算子が使用可能になる (C++20):
operator<
operator<=
operator>
operator>=
例
#include <iostream>
#include <string_view>
int main()
{
std::string_view a = "aaa";
std::string_view b {"aaaBB", 3}; // 先頭3文字を参照
if ((a <=> b) == 0) {
std::cout << "equal" << std::endl;
}
else {
std::cout << "not equal" << std::endl;
}
}
出力
equal
バージョン
言語
- C++20
処理系
- Clang:
- GCC: 10 ✅
- Visual C++: ??
参照
- P1614R2 The Mothership has Landed
- C++20での三方比較演算子の追加と、関連する演算子の自動導出