Tag: LANGUAGE-LAWYER
¿Crees que el declarador inicializado es una estructura léxica válida dentro de la parte de declaración que se atrapa en la sentencia catch? Por ejemplo, echa un vistazo al siguiente código: void func(int = 1) { try { } catch(int a = 1) { } } Se compila bien en . . . Read more
El siguiente código es tratado de manera diferente por los compiladores: #include <compare> struct A; struct I { virtual std::strong_ordering operator <=>(const A&) const { return std::strong_ordering::equal; } }; struct A : I { virtual std::strong_ordering operator <=>(const A&) const = default; }; Ambos GCC y MSVC lo aceptan, pero . . . Read more
¿Cuál es la diferencia entre la función principal con un tipo de dato y una sin parámetros? int main(void) { cout << “Archivo ” << endl; } int main() { cout << “Archivo ” << endl; }
<a href=”https://gcc.godbolt.org/z/f8rTrbzKv”>Clang compila esto bien, pero GCC y MSVC se quejan</a> de que <code>operator=</code> no puede ser por defecto: include template struct S { typedef typename std::enableifenum::value, S>::type Me; S &operator=(Me const &) = default; }; int main() { S s1, s2; s1 = s2; } “` ¿Es legal este . . . Read more
El código es el siguiente: struct B { ~B() = delete; }; B * b = new B{}; <code> no se compila en la última versión de MSVC con el siguiente error: </code> error C2512: ‘B’: no está disponible un constructor por defecto apropiado nota: Inicialización de agregado no válida . . . Read more