std::equal_to, not_equal_to, less, greater, less_equal, greater_equal(std::experimental::propagate_const)
From cppreference.com
< cpp | experimental | propagate const
| ヘッダ <experimental/propagate_const> で定義 |
||
| template< class T > struct equal_to<std::experimental::propagate_const<T>>; |
(Library Fundamentals TS v2) | |
| template< class T > struct not_equal_to<std::experimental::propagate_const<T>>; |
(Library Fundamentals TS v2) | |
| template< class T > struct less<std::experimental::propagate_const<T>>; |
(Library Fundamentals TS v2) | |
| template< class T > struct greater<std::experimental::propagate_const<T>>; |
(Library Fundamentals TS v2) | |
| template< class T > struct less_equal<std::experimental::propagate_const<T>>; |
(Library Fundamentals TS v2) | |
| template< class T > struct greater_equal<std::experimental::propagate_const<T>>; |
(Library Fundamentals TS v2) | |
標準の比較関数オブジェクトは、std::experimental::propagate_const<T> に対して部分特殊化されます。
std::experimental::propagate_const<T> p でラップされたポインタライクなオブジェクトを p.t_ とすると、型 std::experimental::propagate_const<T> のオブジェクト p と q が与えられた場合、以下が成り立つものとします。
- std::equal_to<std::experimental::propagate_const<T>>()(p, q) == std::equal_to<T>()(p.t_, q.t_)
- std::not_equal_to<std::experimental::propagate_const<T>>()(p, q) == std::not_equal_to<T>()(p.t_, q.t_)
- std::less<std::experimental::propagate_const<T>>()(p, q) == std::less<T>()(p.t_, q.t_)
- std::greater<std::experimental::propagate_const<T>>()(p, q) == std::greater<T>()(p.t_, q.t_)
- std::less_equal<std::experimental::propagate_const<T>>()(p, q) == std::less_equal<T>()(p.t_, q.t_)
- std::greater_equal<std::experimental::propagate_const<T>>()(p, q) == std::greater_equal<T>()(p.t_, q.t_)
[編集] 注記
これらの特殊化により、T がポインタ型である場合、std::experimental::propagate_const<T> のこれらのクラステンプレートの特殊化は、対応する組み込み演算子がそうでない場合でも、全順序を生成することが保証されます。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| x == y を実装する関数オブジェクト (クラステンプレート) | |
| x != y を実装する関数オブジェクト (クラステンプレート) | |
| x < y を実装する関数オブジェクト (クラステンプレート) | |
| x > y を実装する関数オブジェクト (クラステンプレート) | |
| x <= y を実装する関数オブジェクト (クラステンプレート) | |
| x >= y を実装する関数オブジェクト (クラステンプレート) |