Resultados de la búsqueda a petición "language-lawyer"

2 la respuesta

¿Por qué uno todavía necesita desambiguar un tipo dependiente con typename en el RHS de una instrucción using?

Sé muy bien por qué hay que usartypename para tipos dependientes, ya que el compilador puede no ser capaz de desambiguar entre un tipo y una declaración de variable cuando ve algo comoT::type, ver p.esta ...

2 la respuesta

Expansión del paquete de parámetros en lambda con expresión de pliegue - gcc vs clang

Teniendo en cuenta el siguiente fragmento de código: template <typename TF> void post(TF){ } template <typename... TFs> struct funcs : TFs... { funcs(TFs... fs) : TFs{fs}... { } void call() { (post([&]{ static_cast<TFs&>(*this)(); }), ...); } ...

4 la respuesta

¿Por qué es una asignación no válida del lado izquierdo?

¿Por qué puedo hacer las siguientes operaciones: var b1, b2; b1 = b2 = true; document.write(b1," ", b2); document.write("<br>"); b1 = !b2; document.write(b1," ", b2); document.write("<br>"); b1 = b2 = !true; document.write(b1," ", b2); Sin ...

5 la respuesta

Las funciones virtuales puras pueden no tener una definición en línea. ¿Por qué?

Las funciones virtuales puras son aquellas funciones miembro que son virtuales y tienen elespecificador puro ( = 0; ) Cláusula 10.4 párrafo 2de C ++ 03 nos dice qué es una clase abstracta y, como nota al margen, lo siguiente: [Nota: una ...

5 la respuesta

"El inicializador de miembro predeterminado es necesario dentro de la definición de la clase adjunta fuera de las funciones de miembro".

#include <utility> struct foo { int x{0}; foo() noexcept = default; void f() noexcept(noexcept(std::declval<foo&>())) {} }; int main() { }ejemplo en vivo en godbolt [https://godbolt.org/g/6RcGxn] El código anterior se compila con cualquier ...

1 la respuesta

Inyección de nombre de clase y constructores

Recientemente, al actualizar una biblioteca a Clang 5.x, noté un error en mi código que se había compilado previamente en Clang 4.x, GCC 5.x-6.xy MSVC 2015 y 2017. #include <iostream> #include <typeinfo> #include <vector> int main() { using a ...

4 la respuesta

¿Qué es exactamente una unidad de traducción en C

La definición comúnmente utilizada de ununidad de traducción es lo que viene después del preprocesamiento (inclusiones de archivos de encabezado, macros, etc. junto con el archivo fuente). Esta definición es razonablemente clara y el estándar C, ...

2 la respuesta

¿Cómo se rompe el código P0522R0?

Hoy estaba leyendo la página de soporte de C ++ 17 de clang. He notado algo extraño. La característicaEmparejar parámetros de plantilla de plantilla con argumentos compatibles ...

3 la respuesta

¿Hay alguna razón por la que no podamos nombrar una función miembro no estática en un contexto no evaluado?

Al leer[expr.prim.id] [https://timsong-cpp.github.io/cppwp/n4659/expr.prim.id], uno verá que Una expresión de identificación que denota un miembro de datos no estático o una función de miembro no estático de una clase solo se puede usar: si esa ...

3 la respuesta

¿UINT_MAX tiene todos los bits establecidos en 1?

Esta pregunta se hace antes, pero todavía estoy confundido. Yo sé eso unsigned int a = -1;seríaUINT_MAX. Pero no es porque todos los bits de -1 estén establecidos. C11 dice Si el nuevo tipo no está firmado, el valor se convierte agregando o ...