Resultados de la búsqueda a petición "strict-aliasing"

5 la respuesta

Reinterprete la estructura con miembros del mismo tipo que una matriz de forma estándar [duplicado]

Esta pregunta ya tiene una respuesta aquí: Lanzar doble matriz a una estructura de dobles [/questions/31082389/casting-double-array-to-a-struct-of-doubles] 6 respuestasEn varias bases de código de matemáticas en 3D a veces encuentro algo como ...

2 la respuesta

lanzará sockaddr_storage y sockaddr_in romperá el alias estricto

Siguiendo mi anteriorpregunta [https://stackoverflow.com/questions/42176962/fill-sockaddr-storage-struct-with-values-of-sockaddr-in] , Tengo mucha curiosidad por este código - case AF_INET: { struct sockaddr_in * tmp = reinterpret_cast<struct ...

1 la respuesta

Generando eficientemente el búfer de bytes sin romper el alias estricto

Este es un patrón tan simple, tiene que haber una forma "agradable" de resolverlo. Tengo una función que necesita generar una matriz de bytes de tamaño dinámico que contenga datos aritméticos. // Given that I have a function that kinda looks ...

1 la respuesta

¿Tiene un puntero std :: byte las mismas implicaciones de alias que char *?

Las reglas estrictas de alias de C ++ (y C) incluyen que unchar* yunsigned char* puede alias cualquier otro puntero. AFAIK no hay una regla análoga parauint8_t*. Por lo tanto, mi pregunta: ¿Cuáles son las reglas de alias para ...

1 la respuesta

Alias de matrices multidimensionales

Es bien sabido que una matriz 2D es una matriz de matrices, y que el estándar requiere que seaun conjunto de objetos no vacíos asignados de forma contigua (6.2.5 Tipos §20): el objeto es una matriz 1D aquí. También es bien sabido que para todas ...

2 la respuesta

bits flotantes y alias estricto

Estoy tratando de extraer los bits de un flotador sin invocar un comportamiento indefinido. Aqui esta mi primer intento: unsigned foo(float x) { unsigned* u = (unsigned*)&x; return *u; }Según tengo entendido, no se garantiza que esto funcione ...

2 la respuesta

¿Existe una diferencia (semántica) entre el valor de retorno de la ubicación nueva y el valor emitido de su operando?

¿Existe una diferencia (semántica) entre el valor de retorno de la ubicación nueva y el valor emitido de su operando? struct Foo { ... }; char buffer[...]; Foo *a = new(buffer) Foo; Foo *b = reinterpret_cast<Foo *>(buffer);Hacea yb difieren de ...

2 la respuesta

¿Es un comportamiento indefinido `reinterpret_cast` a` T * `a` T (*) [N] `?

Considere el siguiente escenario: std::array<int, 8> a; auto p = reinterpret_cast<int(*)[8]>(a.data()); (*p)[0] = 42;Es estocomportamiento indefinido? Creo que es. a.data() devuelve unint*, que no es lo mismo queint(*)[8] losreglas de alias de ...

1 la respuesta

¿La herencia a través del desenrollado viola la estricta regla de alias?

Tengo una estructura X que hereda de la estructura Base. Sin embargo, en mi configuración actual, debido a la alineación, el tamaño de X es 24B: typedef struct { double_t a; int8_t b; } Base; typedef struct { Base base; int8_t c; } X;Para ...

3 la respuesta

Regla de alias estricta y punteros 'char *'

La respuesta aceptada a¿Cuál es la estricta regla de alias? [https://stackoverflow.com/a/99010]menciona que puedes usarchar * alias otro tipo pero no al revés. Para mí no tiene sentido: si tenemos dos punteros, uno de tipochar * y otro ...