Tag: LANGUAGE-LAWYER
Considere este código: /* t0.c */ pragma STDC FENV_ACCESS ON include “t0.h” Luego, en t0.h, ¿cómo se puede verificar el estado de STDC FENV_ACCESS? /* t0.h */ /* ¿cómo se puede verificar el estado de STDC FENV_ACCESS? */ /* algo así como: #if STDC FENV_ACCESS == ON */ Si no . . . Read more
¿Por qué esto es un error de compilación: void f() { g(); } void g() { } pero esto no lo es: class X { void a() { b(); } void b() { } }; Bajo la suposición de que el compilador leería el código de arriba hacia abajo y . . . Read more
Aquí está mi código: class agg_t1{ int x; // miembro de datos no estático privado }; class agg_t2{ agg_t2(){} // constructor proporcionado por el usuario }; constexpr void ce1(agg_t1 arg){}; // OK constexpr void ce2(agg_t2 arg){}; // ERROR: el tipo de parámetro ‘agg_t2’ no es un tipo literal Según dcl.constexpr: . . . Read more
Me sorprende un poco que el compilador (gcc) simplemente asuma que una variable estática nunca será modificada por otros hilos aunque se utilice el nivel de optimización más bajo. Estaba intentando leer un valor escrito desde otro hilo, pero gcc simplemente piensa que el valor nunca ha cambiado. ¿Es un . . . Read more
“`cpp “`cpp include include struct Registers { Registers() : af(0), f((reinterpret_cast(&af))), a((reinterpretcast<uint8t *>(&af) + 1)) { } std::uint16_t af; std::uint8_t& f; std::uint8_t& a; }; int main() { Registers r; r.af = 0x00FF; r.a = 0xAA; std::printf(“AF: %04X A: %02X F: %02X\n”, r.af, r.a, r.f); return 0; } “`cpp Independientemente de . . . Read more