synth-three-way, synth-three-way-result
來自 cppreference.com
constexpr auto synth-three-way = /* 見下文 */; |
(1) | (C++20 起) (僅作說明*) |
template< class T, class U = T > using synth-three-way-result = |
(2) | (C++20 起) (僅作說明*) |
1) 一個函式物件,其 operator() 行為如同綜合性的三路比較函式。等價於
constexpr auto synth-three-way = []<class T, class U>(const T& t, const U& u) requires requires { { t < u } -> boolean-testable; { u < t } -> boolean-testable; } { if constexpr (std::three_way_comparable_with<T, U>) return t <=> u; else { if (t < u) return std::weak_ordering::less; if (u < t) return std::weak_ordering::greater; return std::weak_ordering::equivalent; } };
2) (1)(
synth-three-way
)的 operator() 的返回型別。[編輯] 引數
t, u | - | 要比較的值 |
[編輯] 返回值
比較結果。
[編輯] 參閱
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
字典序比較 pair 中的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
按字典序比較 tuple 中的值 (函式模板) |
(C++11)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++20) |
按字典序比較兩個 array 的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
按字典序比較兩個 deque 的值(函式模板) |
(C++11)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++11)(C++20 中移除)(C++20) |
按字典順序比較兩個 forward_list 的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
以字典序比較兩個 list 的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
字典序比較兩個 vector 的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
按字典順序比較兩個 map 的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
字典序比較兩個 multimap 的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
按字典順序比較兩個 set 的值(函式模板) |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
按字典序比較兩個 multiset 的值(函式模板) |