C++ 命名要求: BinaryPredicate
來自 cppreference.com
BinaryPredicate 是一組標準庫設施對使用者提供的引數所期望的要求。
給定一個 BinaryPredicate bin_pred
和一對迭代器 iter1
和 iter2
,或者一個迭代器 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 成員函式) | |
在特定範圍中尋找最後一次出現的元素序列 (函式模板) | |
搜尋一組元素中的任何一個 (函式模板) | |
尋找第一對相等的(或滿足給定謂詞的)相鄰項 (函式模板) | |
尋找兩個範圍開始不同的第一個位置 (函式模板) | |
判斷兩組元素是否相同 (函式模板) | |
(C++11) |
確定一個序列是否是另一個序列的排列 (函式模板) |
搜尋一個範圍的元素首次出現的位置 (函式模板) | |
在一個範圍內搜尋一個元素的連續 N 次副本首次出現的位置 (函式模板) | |
移除一個範圍中的連續重複元素 (函式模板) | |
建立一個不含連續重複元素的某個元素範圍的副本 (函式模板) | |
(C++17 中已棄用)(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 值的要求不足 |
要求已加強 |