Notice: Unexpected clearActionName after getActionName already called in /var/www/cppreference.com/public/includes/context/RequestContext.php on line 338
Requisitos denominados de C++: Erasable (desde C++11) - cppreference.com
Espacios de nombres
Variantes

Requisitos denominados de C++: Erasable (desde C++11)

De cppreference.com
(Redirigido desde «cpp/named req/Borrable»)
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

Especifica que un objeto del tipo puede destruirse por un Asignador dado.

Requisitos

Dados los siguientes tipos, valores y expresiones:

Tipo Definición
T un tipo objeto
A un tipo asignador
X un tipo contenedor se satisface todas las condiciones siguientes:
  • X::value_type es lo mismo que T.
  • X::allocator_type es lo mismo que std::allocator_traits<A>::rebind_alloc<T>.
Valor Definición
m un l-valor de tipo A
p un puntero de tipo T*

Si la expresión std::allocator_traits<A>::destroy(m, p) está bien formada, T es Borrable a partir de X.

Notas

Todos los contenedores de la biblioteca estándar requieren que sus tipos de valores satisfagan a Erasable.

Con el asignador por defecto, este requisito es equivalente a la validez de p->~T(), que acepta tipos de clase con destructores accesibles y todos los tipos escalares, pero rechaza tipos array, tipos función, tipos referencia, y void.

(hasta C++20)

Con el asignador por defecto, este requisito es equivalente a la validez de std::destroy_at(p), que acepta tipos de clase con destructores accesibles y todos los tipos escalares, así como arrays de los mismos.

(desde C++20)

Si bien hasta C++23 se requiere que se use una destrucción personalizada al destruir elementos de std::basic_string, todas las implementaciones solo usaban el mecanismo predeterminado. El requisito se corrigió por P1072R10 para coincidir con la práctica existente.

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
N3346 C++11 No había ningún requisito para especificar si un tipo
cuyos objetos pueden destruirse mediante asignadores.
Se añadió requisito.

Véase también

InsertablePorCopia
InsertablePorMovimiento
ConstruiblePorEmplazamiento
Destructible