C++ named requirements: BinaryPredicate
BinaryPredicate 是一组由某些标准库设施对用户提供的参数所期望的要求。
给定一个
二元谓词
bin_pred
和一对迭代器
iter1
与
iter2
,或一个迭代器
iter
和一个(可能为
const
的)值
value
,表达式
bin_pred
(
*
iter1,
*
iter2
)
或相应的
bin_pred
(
*
iter, value
)
的类型和值类别必须满足
布尔可测试
要求。
此外,该表达式的求值不允许调用解引用迭代器的非const成员函数;从语法上讲,谓词必须接受
const
对象参数,且无论其参数是
const
还是非
const
,其行为必须保持一致。
要求
- Predicate
- CopyConstructible (除非另有说明)
标准库
以下标准库设施需要一个 BinaryPredicate 类型,该类型并非 Compare 类型。
|
移除连续重复元素
(
std::forward_list<T,Allocator>
的公开成员函数)
|
|
|
移除连续重复元素
(
std::list<T,Allocator>
的公开成员函数)
|
|
|
在特定范围内查找元素的最后序列
(函数模板) |
|
|
搜索一组元素中的任意一个
(函数模板) |
|
|
查找首个相邻的相等元素(或满足给定谓词的元素)
(函数模板) |
|
|
查找两个范围首次出现差异的位置
(函数模板) |
|
|
判断两组元素是否相同
(函数模板) |
|
|
(C++11)
|
判断一个序列是否为另一个序列的排列
(函数模板) |
|
搜索元素范围的首次出现
(函数模板) |
|
|
在范围内搜索连续重复指定次数的元素的首次出现
(函数模板) |
|
|
移除范围内的连续重复元素
(函数模板) |
|
|
创建不包含连续重复元素的区间副本
(函数模板) |
|
|
(deprecated in C++17)
(removed in C++20)
|
构造自定义
std::binary_negate
对象
(函数模板) |
|
(C++11)
|
唯一键的集合,通过键进行哈希
(类模板) |
|
(C++11)
|
键值对集合,通过键进行哈希,键唯一
(类模板) |
|
(C++11)
|
键的集合,通过键进行哈希
(类模板) |
|
(C++11)
|
键值对集合,通过键进行哈希
(类模板) |
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 适用范围 | 发布时的行为 | 正确行为 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 |
返回类型到
bool
的可转换性要求过弱
未能反映实现预期 |
强化要求规范 |
| LWG 3031 | C++98 |
对
const
值的要求不足
|
强化要求规范 |