C++ 命名要求: BinaryPredicate
来自 cppreference.cn
BinaryPredicate 是标准库设施期望用户提供的参数所满足的一组要求。
给定一个 BinaryPredicate bin_pred
和一对迭代器 iter1
和 iter2
,或者一个迭代器 iter
和一个(可能为 const
的)值 value
,表达式 bin_pred(*iter1, *iter2) 或分别地 bin_pred(*iter, value) 的类型和值类别必须满足 BooleanTestable 的要求。
此外,不允许该表达式的求值调用解引用的迭代器的非 const 成员函数;从语法上讲,谓词必须接受 const
对象参数,并且无论其参数是 const
还是非 const
,行为都相同。
[编辑] 要求
- Predicate
- CopyConstructible(除非另有说明)
[编辑] 标准库
以下标准库设施期望一个 BinaryPredicate,它不是 Compare 类型。
移除连续重复的元素 ( std::forward_list<T,Allocator> 的公共成员函数) | |
移除连续重复的元素 ( std::list<T,Allocator> 的公共成员函数) | |
在一个范围内查找最后出现的元素序列 (函数模板) | |
搜索一组元素中的任何一个 (函数模板) | |
查找第一个相等的相邻项(或满足给定谓词的相邻项) (函数模板) | |
查找两个范围首次不同的位置 (函数模板) | |
确定两组元素是否相同 (函数模板) | |
(C++11) |
确定一个序列是否是另一个序列的排列 (函数模板) |
搜索首次出现的元素范围 (函数模板) | |
在一个范围内搜索首次出现的连续多个元素副本 (函数模板) | |
移除一个范围内连续重复的元素 (函数模板) | |
创建一个不包含连续重复元素的范围副本 (函数模板) | |
(C++17 中已弃用)(C++20 中已移除) |
构造自定义的 std::binary_negate 对象 (函数模板) |
(C++11) |
唯一键的集合,通过键哈希 (类模板) |
(C++11) |
键值对的集合,通过键哈希,键是唯一的 (类模板) |
(C++11) |
键的集合,通过键哈希 (类模板) |
(C++11) |
键值对的集合,通过键哈希 (类模板) |
[编辑] 缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
DR | 应用于 | 已发布行为 | 正确行为 |
---|---|---|---|
LWG 2114 (P2167R3) |
C++98 | 返回类型到 bool 的可转换性太弱 未能反映实现的期望 |
要求已加强 |
LWG 3031 | C++98 | 关于 const 值的要求不足 |
要求已加强 |