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