Actualmente estoy usando las características C ++ 11 en mis aplicaciones Qt. Sin embargo, me gustaría usar algunas de las nuevas características de C ++ 14 en mis aplicaciones. Para habilitar C ++ 11 en una aplicación Qt, solo se necesita agregar una línea en el archivo del proyecto qmake , a saber: CONFIG += […]
A menudo, en SO (y en otros lugares) he visto la afirmación de que las notas y los ejemplos en el Estándar C ++ no son normativos; probablemente yo mismo lo he reclamado algunas veces. Sin embargo, no pude encontrar evidencia de este hecho en la especificación del lenguaje central del Estándar C ++ (en […]
Considere el siguiente progtwig: extern int x; auto x = 42; int main() { } Clang 3.5 lo acepta ( demostración en vivo ), GCC 4.9 y VS2013 no ( demostración en vivo para el primero ). ¿Quién tiene razón y dónde se especifica el comportamiento correcto en el Estándar C ++?
Este fragmento se comstack sin errores en Visual Studio 2013 (Versión 12.0.31101.00 Actualización 4) class A { public: A(){} A(A &&){} }; int main(int, char*) { A a; new A(a); return 0; } mientras se comstack con este error en Visual Studio 2015 RC (Versión 14.0.22823.1 D14REL): 1>—— Build started: Project: foo, Configuration: Debug Win32 […]
¿Es posible capturar por referencia de const en una expresión lambda? Quiero que la tarea marcada a continuación falle, por ejemplo: #include #include #include #include using namespace std; int main() { string strings[] = { “hello”, “world” }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string = “foo”; for_each( &strings[0], &strings[num_strings], [&best_string](const string& s) { […]
Los encabezados de biblioteca estándar de C ++ pueden incluirse entre sí de formas no especificadas, por lo que los progtwigdores generalmente no deberían depender de un encabezado que incluya otro. Sin embargo, en algunos casos, se garantiza que un encabezado incluya otro encabezado, o ponga a disposición ciertas funciones que de otro modo requerirían […]
Dadas las tres funciones, esta llamada es ambigua. int f( int ); int f( int && ); int f( int const & ); int q = f( 3 ); La eliminación de f( int ) hace que tanto Clang como GCC prefieran la referencia rvalue sobre la referencia lvalue. Pero en su lugar, eliminar cualquiera […]
Tradicionalmente, la forma estándar y portátil de evitar múltiples inclusiones de encabezado en C ++ era / es utilizar el esquema de directivas #ifndef – #define – #endif también denominado esquema de #ifndef – #define – #endif (vea el fragmento de código a continuación). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP … #endif Sin embargo, en la mayoría […]
La vista ingenua, optimista y oh … tan incorrecta de la syntax de inicialización uniforme de c ++ 11 Pensé que dado que los objetos de tipo C ++ 11 definidos por el usuario deberían construirse con la nueva syntax {…} lugar de la antigua (…) syntax (excepto para el constructor sobrecargado para std::initializer_list y […]
En la lista de correo de Boost , @LouisDionne publicó recientemente el siguiente truco inteligente para crear una entidad similar a una tupla: #include auto list = [](auto …xs) { return [=](auto access) { return access(xs…); }; }; auto length = [](auto xs) { return xs([](auto …z) { return sizeof…(z); }); }; int main() { […]