Namespaces
Variants

C++ named requirements: BinaryPredicate

From cppreference.net
C++ named requirements

BinaryPredicate 是一组由某些标准库设施对用户提供的参数所期望的要求。

给定一个 二元谓词 bin_pred 和一对迭代器 iter1 iter2 ,或一个迭代器 iter 和一个(可能为 const 的)值 value ,表达式 bin_pred ( * iter1, * iter2 ) 或相应的 bin_pred ( * iter, value ) 的类型和值类别必须满足 布尔可测试 要求。

此外,该表达式的求值不允许调用解引用迭代器的非const成员函数;从语法上讲,谓词必须接受 const 对象参数,且无论其参数是 const 还是非 const ,其行为必须保持一致。

要求

标准库

以下标准库设施需要一个 BinaryPredicate 类型,该类型并非 Compare 类型。

移除连续重复元素
( std::forward_list<T,Allocator> 的公开成员函数)
移除连续重复元素
( std::list<T,Allocator> 的公开成员函数)
在特定范围内查找元素的最后序列
(函数模板)
搜索一组元素中的任意一个
(函数模板)
查找首个相邻的相等元素(或满足给定谓词的元素)
(函数模板)
查找两个范围首次出现差异的位置
(函数模板)
判断两组元素是否相同
(函数模板)
判断一个序列是否为另一个序列的排列
(函数模板)
搜索元素范围的首次出现
(函数模板)
在范围内搜索连续重复指定次数的元素的首次出现
(函数模板)
移除范围内的连续重复元素
(函数模板)
创建不包含连续重复元素的区间副本
(函数模板)
(deprecated in C++17) (removed in C++20)
构造自定义 std::binary_negate 对象
(函数模板)
唯一键的集合,通过键进行哈希
(类模板)
键值对集合,通过键进行哈希,键唯一
(类模板)
键的集合,通过键进行哈希
(类模板)
键值对集合,通过键进行哈希
(类模板)

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 适用范围 发布时的行为 正确行为
LWG 2114
( P2167R3 )
C++98 返回类型到 bool 的可转换性要求过弱
未能反映实现预期
强化要求规范
LWG 3031 C++98 const 值的要求不足 强化要求规范