Resultados de la búsqueda a petición "unions"

1 la respuesta

¿Usa std :: launder para obtener un puntero a un miembro de objeto activo desde un puntero a un objeto inactivo?

Esta pregunta sigue a estauno [https://stackoverflow.com/questions/48188737/is-pointer-arithmetic-on-inactive-member-of-a-union-ub] Consideremos este código de ejemplo: struct sso { union{ struct { char* ptr; char size_r[8]; } large_str; ...

7 la respuesta

gcc, alias estricto y transmisión a través de una unión

¿Tienes alguna historia de terror que contar? El Manual del CCG agregó recientemente una advertencia sobre -fstrict-aliasing y lanzar un puntero a través de una unión: [...] Tomar la dirección, lanzar el puntero resultante y desreferenciar ...

1 la respuesta

Constructor y constructor de copia para la clase que contiene la unión con miembros no triviales

Estoy tratando de implementar un tipo de variante personalizada que utiliza una unión para almacenar datos de varios tipos diferentes. En el campotype_id Planeo almacenar de qué tipo son los datos almacenados en la unión. El sindicato contiene ...

2 la respuesta

Cómo escribir destructor para clase de unión

Estoy tratando de usar una unión (C ++) que tiene algunas variables no primitivas, pero estoy atascado tratando de crear el destructor para esa clase. Como he leído, no es posible adivinar qué variable de la unión se está utilizando, por lo que ...

3 la respuesta

¿Cómo funciona boost :: variant and boost :: cualquier trabajo?

¿Cómo funcionan internamente las variantes y cualquiera de la biblioteca boost? En un proyecto en el que estoy trabajando, actualmente utilizo una unión etiquetada. Quiero usar otra cosa, porque las uniones en C ++ no te permiten usar objetos con ...

2 la respuesta

¿Las uniones sin restricciones requieren una colocación nueva y una definición de constructor?

Los ejemplos que he visto de uniones sin restricciones siempre parecen usar una ubicación nueva al construir. El artículo de Wikipedia para las características de C ++ 11 utiliza una ubicación nueva en el constructor de una ...

2 la respuesta

estructuras 'punning' de unión con “secuencia inicial común”: ¿Por qué C (99+), pero no C ++, estipula una 'declaración visible del tipo de unión'?

AntecedentesDebates sobre la naturaleza, en su mayoría, no definida o implementada de la escritura de tipos mediante ununion normalmente cita los siguientes bits, aquí a través de @ecatmur ...

1 la respuesta

Acceso a miembros inactivos del mismo tipo en sindicatos

Tengo algo como esto: union DataXYZ { struct complex_t { float real, imag; } complex; struct vector_t { float magnitude, phase; } vector; };Tengo algunos vectores de estos, que son memoria de espacio de trabajo de propósito general, donde uso ...

3 la respuesta

Aclaración sobre un ejemplo de sindicatos en el estándar C11

El siguiente ejemplo se da en el estándar C11, 6.5.2.3 Lo siguiente no es un fragmento válido (porque el tipo de unión no es visible dentro de la función f): struct t1 { int m; }; struct t2 { int m; }; int f(struct t1 *p1, struct t2 *p2) { if ...

5 la respuesta

¿Accediendo a un miembro sindical inactivo y comportamiento indefinido?

Tenía la impresión de que acceder a ununion otro miembro que no sea el último conjunto es UB, pero parece que no puedo encontrar una referencia sólida (aparte de las respuestas que afirman que es UB pero sin ningún soporte del estándar). ...