Tag: LANGUAGE-LAWYER
Basado en las siguientes dos reglas: Utilizar un identificador que comience con “_”, seguido de una letra mayúscula, o contenga un doble guión bajo, es un comportamiento indefinido. El comportamiento indefinido no está permitido en expresiones constexpr -> el compilador no debe compilar. Entonces, ¿por qué los compiladores no se . . . Read more
Hasta donde yo sé, el comportamiento indefinido debería ser un error de compilación durante la evaluación constante. Pero si tomamos un ejemplo de comportamiento indefinido del estándar C++20 en class.union#6.3 con una pequeña modificación para activar la evaluación constante: struct X { const int a; int b; }; union Y . . . Read more
¿Por qué el parámetro de plantilla para std::counting_semaphore<> es un ptrdiff_t en lugar de un size_t? Para mí no tiene sentido tener valores de conteo máximo negativos en el semáforo.
¿Por qué un destructor explícitamente predeterminado deshabilita el constructor de movimiento predeterminado en la clase? Sé que lo hace, como se explica en varias respuestas existentes (por ejemplo: https://stackoverflow.com/questions/56968443/explicitly-defaulted-destructor-disables-default-move-constructor-in-a-class?noredirect=1&lq=1). Quiero saber por qué: ¿cuál es la justificación para esto, cuando en realidad no hace nada que implique que el constructor . . . Read more
Código de muestra (t0.c): include <stdio.h> include <fenv.h> int main(void) { printf(“%e\n”, 1.0f); { #pragma STDC FENV_ACCESS ON return fetestexcept(FE_INEXACT) ? 1 : 0; } } Si se devuelve 1, ¿es un error?</fenv.h></stdio.h>