Tag: LANGUAGE-LAWYER
¿Pueden tener los tipos int_leastN_t e int_fastN_t bits de relleno? Dado que tanto en C11, sección 7.20.1.2 Tipos enteros mínimos de ancho mínimo como en C11, sección 7.20.1.3 Tipos enteros mínimos de ancho mínimo más rápidos no se menciona “sin bits de relleno”, concluyo que int_leastN_t e int_fastN_t pueden tener . . . Read more
Considere este ejemplo, es rechazado por todas las implementaciones. Sin embargo, no he encontrado ninguna disposición persuasiva en el estándar actual que especifique que esta declaración de especialización explícita sea inválida. Si existe, ¿cuál es la regla? Además, la regla potencialmente relevante podría ser que [temp.deduct.decl#2] Si, para el conjunto . . . Read more
Considere el siguiente código: struct Base_string { char data[1 << 5]; }; template<typename base=””> struct Derived: Base { }; Derived(char const*) -> Derived<base_string>; template<derived> struct S { }; S<{“Test”}> s; // Error La última línea, en la cual se instancia S, no compila. Yo esperaba que funcionara, porque [temp.arg.nontype#1] establece . . . Read more
Considere la siguiente clase A que define una clase interna de plantilla B: struct A { template<class ==”” int=””> struct B { }; }; Podemos usar la siguiente expresión para inicializar la clase interna B, donde typename es opcional: (Godbolt) int main() { A::template B<>(); typename A::template B<>(); } Quiero . . . Read more
En el siguiente ejemplo, la función f() que devuelve el tipo incompleto A está marcada como eliminada: struct A; A f() = delete; Es aceptado por GCC, pero no por Clang, el cual arroja el siguiente error: error: tipo de resultado incompleto ‘A’ en la definición de la función Demo: . . . Read more