Namespaces
Variants

C++ named requirements: BinaryPredicate

From ru.cppreference.net
C++ named requirements

BinaryPredicate представляет собой набор требований, ожидаемых некоторыми компонентами стандартной библиотеки от предоставляемых пользователем аргументов.

Даны BinaryPredicate bin_pred и пара итераторов iter1 и iter2 или итератор iter и (возможно, const ) значение value , тип и категория значения выражения bin_pred ( * iter1, * iter2 ) или, соответственно, bin_pred ( * iter, value ) должны удовлетворять требованиям BooleanTestable .

Кроме того, при вычислении этого выражения запрещено вызывать неконстантные функции-члены разыменованных итераторов; синтаксически предикат должен принимать const аргументы-объекты, с одинаковым поведением независимо от того, являются ли его аргументы const или не- const .

Требования

Стандартная библиотека

Следующие средства стандартной библиотеки ожидают BinaryPredicate, который не является типом Compare тип.

удаляет последовательные дублирующиеся элементы
(открытая функция-член std::forward_list<T,Allocator>)
удаляет последовательные дублирующиеся элементы
(открытая функция-член std::list<T,Allocator>)
находит последнюю последовательность элементов в определённом диапазоне
(шаблон функции & функциональный объект алгоритма)
ищет любой из набора элементов
(шаблон функции & функциональный объект алгоритма)
находит первые два смежных элемента, которые равны (или удовлетворяют заданному предикату)
(шаблон функции & функциональный объект алгоритма)
находит первую позицию, где два диапазона различаются
(шаблон функции & функциональный объект алгоритма)
определяет, являются ли два набора элементов одинаковыми
(шаблон функции & функциональный объект алгоритма)
определяет, является ли последовательность перестановкой другой последовательности
(шаблон функции & функциональный объект алгоритма)
ищет первое вхождение диапазона элементов
(шаблон функции & функциональный объект алгоритма)
ищет первое вхождение подряд идущих копий элемента в диапазоне
(шаблон функции & функциональный объект алгоритма)
удаляет последовательные дублирующиеся элементы в диапазоне
(шаблон функции & функциональный объект алгоритма)
создаёт копию диапазона элементов, не содержащую последовательных дубликатов
(шаблон функции & функциональный объект алгоритма)
(устарел в C++17)(удалён в C++20)
создаёт пользовательский std::binary_negate объект
(шаблон функции)
коллекция уникальных ключей, хешированных по ключам
(шаблон класса)
коллекция пар ключ-значение, хешированных по ключам, ключи уникальны
(шаблон класса)
коллекция ключей, хешированных по ключам
(шаблон класса)
коллекция пар ключ-значение, хешированных по ключам
(шаблон класса)

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 2114
( P2167R3 )
C++98 конвертируемость возвращаемых типов в bool была слишком слабой
для отражения ожиданий реализаций
требования усилены
LWG 3031 C++98 требования к const значениям были недостаточными требования усилены