Namespaces
Variants

C++ named requirements: BinaryPredicate

From es.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 instalaciones 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 & objeto función de algoritmo)
busca cualquiera de un conjunto de elementos
(plantilla de función & objeto función de algoritmo)
encuentra los primeros dos elementos adyacentes que son iguales (o satisfacen un predicado dado)
(plantilla de función & objeto función de algoritmo)
encuentra la primera posición donde dos rangos difieren
(plantilla de función & objeto función de algoritmo)
determina si dos conjuntos de elementos son iguales
(plantilla de función & objeto función de algoritmo)
determina si una secuencia es una permutación de otra secuencia
(plantilla de función & objeto función de algoritmo)
busca la primera aparición de un rango de elementos
(plantilla de función & objeto función de algoritmo)
busca la primera aparición de un número de copias consecutivas de un elemento en un rango
(plantilla de función & objeto función de algoritmo)
elimina elementos duplicados consecutivos en un rango
(plantilla de función & objeto función de algoritmo)
crea una copia de algún rango de elementos que no contiene duplicados consecutivos
(plantilla de función & objeto función de algoritmo)
(obsoleto en C++17)(eliminado en C++20)
construye un objeto std::binary_negate personalizado
(plantilla de función)
colección de claves únicas, ordenadas por hash de las claves
(plantilla de clase)
colección de pares clave-valor, ordenados por hash de las claves, las claves son únicas
(plantilla de clase)
colección de claves, ordenadas por hash de las claves
(plantilla de clase)
colección de pares clave-valor, ordenados por hash de las 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