es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: LANGUAGE-LAWYER

Definición de clase en un espacio de nombres con uso.

En class.pre hay una definición de clase de ejemplo: namespace N { template<class> struct A { struct B; }; } using N::A; template<class T> struct A<T>::B {}; // OK template<> struct A<void> {}; // OK Y el estándar establece: Si un nombre de encabezado de clase contiene un especificador de . . . Read more

Plantillas de funciones miembro estáticas y no estáticas con los mismos tipos de parámetros y cláusula “requires” en C++.

Las funciones miembro estáticas y no estáticas con los mismos tipos de parámetros no pueden ser sobrecargadas. Sin embargo, si las funciones miembro son plantillas y una de ellas tiene una cláusula requires, todos los compiladores lo permiten. Pero los problemas aparecen cuando se llaman ambas funciones miembro: struct A . . . Read more

¿Debería la compilación de código fuente previamente no preprocesado generar los mismos diagnósticos que la compilación de código fuente previamente preprocesado?

Considere este escenario: $ cat t783.c #define EXPR (“xxx” + 1) char* s = EXPR; $ clang t783.c -c t783.c:2:11: advertencia: añadir ‘int’ a una cadena no agrega a la cadena [-Wstring-plus-int] $ clang t783.c -E | clang -xc – -c t783.c:2:18: advertencia: añadir ‘int’ a una cadena no agrega . . . Read more

¿Es correcto std::views::reverse en un rango infinito?

Mira este ejemplo de código: enlace: #include <ranges> int main() { for(auto i : std::ranges::iota_view(1) | std::views::reverse) break; } Se compila en gcc (no puedo verificar en clang/msvc, ya que no admiten rangos). Por supuesto, se ejecuta “infinitamente” y no hace nada. También verifiqué que hacer std::ranges::rbegin(inf) o std::ranges::rend(inf) en . . . Read more