type-punning
¿Cuál es la estricta regla de aliasing?
Al preguntar sobre el comportamiento común indefinido en C, las almas más iluminadas de lo que me referí a la estricta regla de aliasing.
¿De qué están hablando?
Propósito de los sindicatos en C y C++
He usado uniones antes cómodamente; hoy me alarmé cuando leí este post y llegué a saber que este código
union ARGB
{
... encia como una característica del lenguaje C++ . Esta es la razón por la que la respuesta de Andrey sigue siendo la aceptada.
¿Es el juego de palabras de tipo a través de una unión no especificado en C99, y se ha especificado en C11?
A number of answers for the Stack Overflow question Getting the IEEE Single-precision bits for a float suggest using a union ... de los compiladores parecen soportar esto, pero sería bueno saber si está especificado en el estándar, o extensión muy común.
Sindicatos y juegos de azar
He estado buscando por un tiempo, pero no puedo encontrar una respuesta clara.
Mucha gente dice que usar uniones para escrib ... eso y C. Específicamente estoy usando uniones para convertir entre flotadores y el hex raw para enviar a través del bus CAN.
almacenamiento alineado y alias estrictos
Actualmente estoy usando aligned_storage para implementar un tipo 'Opcional' similar al de boost::optional. Para lograr esto ... Si es posible, me sentiría mejor si pudiera hacer referencia al estándar en su respuesta (me ayuda a dormir por la noche :P).
Se permite aliasing T* con char*. ¿También está permitido al revés?
Nota: Esta pregunta ha sido renombrada y reducida para hacerla más enfocada y legible. La mayoría de los comentarios se refi ... permitido al revés. Por ejemplo:
char * c = read_socket(...);
unsigned * u = reinterpret_cast<unsigned*>(c); // huh?
Reutilización de un búfer flotante para dobles sin comportamiento indefinido
En una función particular de C++, resulta que tengo un puntero a un gran búfer de flotadores que quiero usar temporalmente pa ... tipos no está permitido en C++).
Se puede asumir que el búfer flotante está correctamente alineado para usarlo para dobles.