命名空间
变体
操作

C++ 命名要求: BinaryPredicate

来自 cppreference.cn
 
 
C++ 命名要求
基本
类型属性
全库范围
BinaryPredicate(二元谓词)




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
随机数
并发
Ranges(范围)
多维视图
其他

 

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

给定一个 BinaryPredicate bin_pred 和一对迭代器 iter1iter2,或者一个迭代器 iter 和一个(可能是 const)值 value,表达式 bin_pred(*iter1, *iter2) 或,相应地,bin_pred(*iter, value) 的类型和值类别必须满足 BooleanTestable 要求。

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

[编辑] 要求

[编辑] 标准库

以下标准库设施期望一个不是 Compare 类型的 BinaryPredicate

移除连续的重复元素
(std::forward_list<T,Allocator> 的 public 成员函数) [编辑]
移除连续的重复元素
(std::list<T,Allocator> 的 public 成员函数) [编辑]
在特定范围中寻找最后一次出现的元素序列
(函数模板) [编辑]
搜索一组元素中的任何一个
(函数模板) [编辑]
寻找第一对相等的(或满足给定谓词的)相邻项
(函数模板) [编辑]
寻找两个范围开始不同的第一个位置
(函数模板) [编辑]
判断两组元素是否相同
(函数模板) [编辑]
确定一个序列是否是另一个序列的排列
(函数模板) [编辑]
搜索一个范围的元素首次出现的位置
(函数模板) [编辑]
在一个范围内搜索一个元素的连续 N 次副本首次出现的位置
(函数模板) [编辑]
移除一个范围中的连续重复元素
(函数模板) [编辑]
创建一个不含连续重复元素的某个元素范围的副本
(函数模板) [编辑]
(C++17 中已弃用)(C++20 中已移除)
构造自定义的 std::binary_negate 对象
(函数模板) [编辑]
由键哈希的唯一键集合
(类模板) [编辑]
键值对的集合,按键哈希,键是唯一的
(类模板) [编辑]
键的集合,按键哈希
(类模板) [编辑]
键值对集合,按键哈希
(类模板) [编辑]

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 发布时的行为 正确的行为
LWG 2114
(P2167R3)
C++98 返回类型到 bool 的可转换性太弱
无法反映实现的预期
要求已加强
LWG 3031 C++98 const 值的要求不足 要求已加强