Resultados de la búsqueda a petición "strict-aliasing"
Podríamos acceder al miembro de un objeto de tipo de clase no existente?
En el estándar c ++, en [basic.lval] /11. [http://eel.is/c++draft/basic.lval#11.6] dice Si un programa intenta acceder al valor almacenado de un objeto a través de un valor gl diferente de uno de los siguientes tipos, el comportamiento no ...
s legal reutilizar la memoria de una matriz de tipos fundamental para una matriz de tipos diferente (pero aún fundamental)
Esta es una continuación de esta otrapregunt [https://stackoverflow.com/q/51930334/3545273] sobre la reutilización de la memoria. Como la pregunta original era sobre una implementación específica, la respuesta estaba relacionada con esa ...
¿El acceso a través del puntero cambia la semántica de alias estricto?
Con estas definiciones: struct My_Header { uintptr_t bits; } struct Foo_Type { struct My_Header header; int x; } struct Foo_Type *foo = ...; struct Bar_Type { struct My_Header header; float x; } struct Bar_Type *bar = ...; ¿Es correcto decir que ...
Is std :: memcpy entre diferentes tipos trivialmente copiables comportamiento indefinido?
He estado usandostd::memcpy evitar aliasing estricto por mucho tiempo Por ejemplo, inspeccionar unfloat, me gustaest [https://stackoverflow.com/a/17790026/8157187]: float f = ...; uint32_t i; static_assert(sizeof(f)==sizeof(i)); ...
Reutilizando 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 flotantes que quiero usar temporalmente para almacenar la mitad de la cantidad de dobles. ¿Existe un método para usar este búfer como espacio reutilizable para ...
¿Da a los datos un tipo efectivo cuenta como un efecto secundario?
Supongamos que tengo una porción de datos asignados dinámicamente: void* allocate (size_t n) { void* foo = malloc(n); ... return foo; } Deseo utilizar los datos señalados porfoo como tipo especial,type_t. Pero quiero hacer esto más tarde, y no ...
Es una violación de alias estricta alias una estructura como su primer miembro?
Código de muestra struct S { int x; }; int func() { S s{2}; return (int &)s; // Equivalent to *reinterpret_cast<int *>(&s) } Creo que esto es común y se considera aceptable. El estándar garantiza que no hay relleno inicial en la estructura. Sin ...
¿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 ...
¿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 ...
¿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 ...