Namespaces
Variants

C++ named requirements: BinaryPredicate

From cppreference.net
C++ named requirements

BinaryPredicate es un conjunto de requisitos esperados por algunas de las facilidades de la biblioteca estándar de los argumentos proporcionados por el usuario.

Dado un BinaryPredicate bin_pred y un par de iteradores iter1 y iter2 o un iterador iter y un valor (posiblemente const ) value , el tipo y la categoría de valor de la expresión bin_pred ( * iter1, * iter2 ) o, respectivamente, bin_pred ( * iter, value ) , deben cumplir con los requisitos de BooleanTestable .

Además, la evaluación de esa expresión no puede llamar a funciones miembro no constantes de los iteradores desreferenciados; sintácticamente, el predicado debe aceptar const argumentos de objeto, con el mismo comportamiento independientemente de si sus argumentos son const o no- const .

Requisitos

Biblioteca estándar

Las siguientes facilidades de la biblioteca estándar esperan un BinaryPredicate que no es un tipo Compare .

elimina elementos duplicados consecutivos
(función miembro pública de std::forward_list<T,Allocator> )
elimina elementos duplicados consecutivos
(función miembro pública de std::list<T,Allocator> )
encuentra la última secuencia de elementos en un rango determinado
(plantilla de función)
busca cualquiera de un conjunto de elementos
(plantilla de función)
encuentra los dos primeros elementos adyacentes que son iguales (o satisfacen un predicado dado)
(plantilla de función)
encuentra la primera posición donde dos rangos difieren
(plantilla de función)
determina si dos conjuntos de elementos son iguales
(plantilla de función)
determina si una secuencia es una permutación de otra secuencia
(plantilla de función)
busca la primera ocurrencia de un rango de elementos
(plantilla de función)
busca la primera ocurrencia de un número de copias consecutivas de un elemento en un rango
(plantilla de función)
elimina elementos duplicados consecutivos en un rango
(plantilla de función)
crea una copia de algún rango de elementos que no contiene duplicados consecutivos
(plantilla de función)
(obsoleto en C++17) (eliminado en C++20)
construye un objeto personalizado std::binary_negate
(plantilla de función)
colección de claves únicas, hasheadas por claves
(plantilla de clase)
colección de pares clave-valor, hasheadas por claves, claves únicas
(plantilla de clase)
colección de claves, hasheadas por claves
(plantilla de clase)
colección de pares clave-valor, hasheadas por claves
(plantilla de clase)

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2114
( P2167R3 )
C++98 la convertibilidad de tipos de retorno a bool era demasiado débil
para reflejar la expectativa de implementaciones
requisitos fortalecidos
LWG 3031 C++98 los requisitos sobre valores const eran insuficientes requisitos fortalecidos