Espacios de nombres
Variantes
Acciones

Requisitos denominados de C++:TrivialmenteCopiable(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

 

Nota: el estándar no define un requisito denominado con este nombre. Esta es una categoría de tipo definida por el lenguaje central. Se incluye aquí como un requisito con nombre solamente por consistencia.

Contenido

[editar]Requisitos

Los siguientes tipos se denominan colectivamente tipos copiable trivialmente:

[editar]Notas

En general, para cualquier tipo T copiable trivialmente y un objeto obj1 de T, los bytes subyacentes de obj1 se pueden copiar en un array de char, o unsignedchar, o std::byte(desde C++17) o en obj2, otro objeto de T. Ni obj1 ni obj2 pueden ser un subobjeto potencialmente superpuesto.

Si los bytes subyacentes de obj1 se copian en dicho array y luego el contenido resultante se vuelve a copiar en obj1, obj1 mantendrá su valor original. Si los bytes subyacentes de obj1 se copian en obj2, obj2 contendrá el valor de obj1.

Los bytes subyacentes se pueden copiar mediante std::memcpy o std::memmove, siempre que no se acceda a ningún objeto volátil.

[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
CWG 1734 C++11 C++03 POD con asignación no trivial eliminada era no trivial. Se permiten constructores/operadores eliminados.
CWG 2094 C++11 Tipos escalares volátiles no son trivialmente copiables (CWG 1746). Se hicieron trivialmente copiables.

[editar]Véase también

Comprueba si un tipo es trivialmente copiable.
(plantilla de clase)[editar]
close