std::equal_to, not_equal_to, less, greater, less_equal, greater_equal(std::experimental::propagate_const)
来自 cppreference.cn
< cpp | 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> 进行了部分特化。
令 p.t_ 表示由 std::experimental::propagate_const<T> p 包装的类指针对象,则给定类型为 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 的函数对象 (类模板) |