Articles of c ++ 14

¿Cómo puedo usar las características de C ++ 14 al construir proyectos qmake?

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 += […]

¿Son las notas y ejemplos en la especificación del lenguaje central del Estándar C ++ no normativo?

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 […]

¿Una statement que utiliza “auto” coincide con una statement externa que utiliza un especificador de tipo concreto?

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 ++?

Error comstackdor C ++ C2280 “intentando hacer referencia a una función eliminada” en Visual Studio 2013 y 2015

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 […]

¿Captura Lambda como referencia constante?

¿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) { […]

¿Qué encabezados en la biblioteca estándar de C ++ tienen garantizado incluir otro encabezado?

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 […]

Resolución de sobrecarga entre objeto, referencia de valor real, referencia de referencia

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 […]

Es #pragma una vez parte del estándar C ++ 11?

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 […]

Se eliminó el constructor predeterminado. Los objetos aún se pueden crear … a veces

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 […]

¿Hay un nombre para este modismo de creación de tuplas?

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() { […]