C++ 具名要求:二元谓词 (BinaryPredicate)

来自cppreference.com
< cpp‎ | named req


 
 
C++ 具名要求
 

二元谓词 (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> 的公开成员函数) [编辑]
删除连续的重复元素
(std::list<T,Allocator> 的公开成员函数) [编辑]
查找元素序列在特定范围中最后一次出现
(函数模板) [编辑]
搜索一组元素中任一元素
(函数模板) [编辑]
查找首对相同(或满足给定谓词)的相邻元素
(函数模板) [编辑]
查找两个范围的首个不同之处
(函数模板) [编辑]
判断两组元素是否相同
(函数模板) [编辑]
判断一个序列是否为另一个序列的排列
(函数模板) [编辑]
搜索元素范围的首次出现
(函数模板) [编辑]
搜索元素在范围中首次连续若干次出现
(函数模板) [编辑]
移除范围中连续重复元素
(函数模板) [编辑]
创建某范围的不含连续重复元素的副本
(函数模板) [编辑]
(C++17 弃用)(C++20 移除)
构造定制的 std::binary_negate 对象
(函数模板) [编辑]
(C++11 起)
唯一键的集合,按照键生成散列
(类模板) [编辑]
(C++11 起)
键值对的集合,按照键生成散列,键是唯一的
(类模板) [编辑]
键的集合,按照键生成散列
(类模板) [编辑]
键值对的集合,按照键生成散列
(类模板) [编辑]

[编辑] 缺陷报告

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

缺陷报告 应用于 出版时的行为 正确行为
LWG 2114
(P2167R3)
C++98 返回类型到 bool 的可转换性过于弱而无法反映实现的期待 加强要求
LWG 3031 C++98 const 值上的要求不充分 加强要求