C++ named requirements: BinaryPredicate
BinaryPredicate представляет собой набор требований, ожидаемых некоторыми компонентами стандартной библиотеки от предоставляемых пользователем аргументов.
Даны
BinaryPredicate
bin_pred
и пара итераторов
iter1
и
iter2
или итератор
iter
и (возможно,
const
) значение
value
, тип и категория значения выражения
bin_pred
(
*
iter1,
*
iter2
)
или, соответственно,
bin_pred
(
*
iter, value
)
должны удовлетворять требованиям
BooleanTestable
.
Кроме того, при вычислении этого выражения запрещено вызывать неконстантные функции-члены разыменованных итераторов; синтаксически предикат должен принимать
const
аргументы-объекты, с одинаковым поведением независимо от того, являются ли его аргументы
const
или не-
const
.
Требования
- Predicate
- CopyConstructible (если не указано иное)
Стандартная библиотека
Следующие средства стандартной библиотеки ожидают BinaryPredicate , который не является типом Compare .
|
удаляет последовательные дублирующиеся элементы
(публичная функция-член
std::forward_list<T,Allocator>
)
|
|
|
удаляет последовательные дублирующиеся элементы
(публичная функция-член
std::list<T,Allocator>
)
|
|
|
находит последнюю последовательность элементов в заданном диапазоне
(шаблон функции) |
|
|
ищет любой из набора элементов
(шаблон функции) |
|
|
находит первые два соседних элемента, которые равны (или удовлетворяют заданному предикату)
(шаблон функции) |
|
|
находит первую позицию, в которой два диапазона различаются
(шаблон функции) |
|
|
определяет, идентичны ли два набора элементов
(шаблон функции) |
|
|
(C++11)
|
определяет, является ли последовательность перестановкой другой последовательности
(шаблон функции) |
|
ищет первое вхождение диапазона элементов
(шаблон функции) |
|
|
ищет первое вхождение заданного количества последовательных копий элемента в диапазоне
(шаблон функции) |
|
|
удаляет последовательные дублирующиеся элементы в диапазоне
(шаблон функции) |
|
|
создаёт копию диапазона элементов, не содержащую последовательных дубликатов
(шаблон функции) |
|
|
(устарело в C++17)
(удалено в C++20)
|
создаёт пользовательский объект
std::binary_negate
(шаблон функции) |
|
(C++11)
|
коллекция уникальных ключей, хэшируемых по ключам
(шаблон класса) |
|
(C++11)
|
коллекция пар ключ-значение, хэшируемых по ключам, ключи уникальны
(шаблон класса) |
|
(C++11)
|
коллекция ключей, хэшируемых по ключам
(шаблон класса) |
|
(C++11)
|
коллекция пар ключ-значение, хэшируемых по ключам
(шаблон класса) |
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 |
конвертируемость возвращаемых типов в
bool
была слишком слабой
для отражения ожиданий реализаций |
требования усилены |
| LWG 3031 | C++98 |
требования к
const
значениям были недостаточными
|
требования усилены |