¿Puede un simple 'char' posiblemente tener valores de trampa?

LÉAME

A "valor de la trampa"o"representación de trampa" para tipoT, es una combinación de bits (del almacenamiento subyacente) que produce un valor no válido deT. Intentar interpretar la representación de un valor no válido provocarácomportamiento indefinido.

Que comience la batalla ...

Otropregunta ha comenzado una acalorada discusión sobrechar, y la posibilidad de una implementación que tengarepresentaciones de trampa para ello.

Pregunta:

latachar posiblemente tenga valores de trampa?Citas que se han mencionado en la discusión anterior:

Estas secciones son las más citadas durante la argumentación anterior, ¿son contradictorias?

3.9.1p1 Tipos fundamentales [basic.fundamental]

Se define la implementación si unchar Puede contener valores negativos. Los caracteres pueden declararse explícitamentesigned ounsigned.

A char, a signed char, y ununsigned char ocupar la misma cantidad de almacenamiento y tener los mismos requisitos de alineación (3.11); es decir, tienen la misma representación de objeto. Para los tipos de caracteres, todos los bits de la representación del objeto participan en la representación del valor.

Para los tipos de caracteres sin signo, todos los patrones de bits posibles de la representación del valor representan números. Estos requisitos no son válidos para otros tipos.

En cualquier implementación particular, un simplechar el objeto puede tomar los mismos valores que unsigned char o ununsigned char; cuál está definido por la implementación.

3.9p2Tipos [basic.types]

Para cualquier objeto (que no sea un subobjeto de clase base) de tipo trivialmente copiableT, si el objeto tiene o no un valor válido de tipoT, los bytes subyacentes (1.7) que componen el objeto se pueden copiar en una matriz dechar ounsigned char.

Si el contenido de la matriz dechar ounsigned char se copia nuevamente en el objeto, el objeto posteriormente mantendrá su valor original.

Respuestas a la pregunta(1)

Su respuesta a la pregunta