Espacios de nombres
Variantes
Acciones

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

De cppreference.com
< cpp‎ | named req
 
 
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.

Contenido

[editar]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.

[editar]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.

[editar]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.

[editar]Véase también

InsertablePorCopia
InsertablePorMovimiento
ConstruiblePorEmplazamiento
Destructible
close