===== C++11 ===== En 2011 se aprobó una nueva versión de C++, llamada //C++11//. En C++11 se agregan varias características nuevas a C++ que permiten escribir muchas cosas de manera más simple. En general, la sintaxis de varias cosas antes de C++11 era menos clara y conveniente. Recomendamos utilizar C++11, para lo cual basta compilar los programas con la opción -std=gnu++11 : se puede ver cómo activar C++11 [[curso-cpp:ambiente:oiax#configuracion_de_compilacion_con_geany|aquí]], bajo el título "Configuración de compilación con Geany" Algunas de las características nuevas más importantes disponibles en C++11: * Inicialización con llaves ''vector v{1,2,10};'' * Iteración con //foreach//: ''for (int x : v) { cout << x << endl; }'' * Palabras reservadas ''auto'' y ''decltype'' (similar al viejo ''typeof'') * //Closures// y //Lambdas// * El tipo //tuple// * Los tipos ''unordered_set'', ''unordered_multiset'', ''unordered_map'', ''unordered_multimap'' (//Hash Tables//) * La biblioteca //regex//, para uso de expresiones regulares * //Move semantics// * //Delegating constructors// * Expresiones como ''vector>'' funcionan (En C++03 es necesario escribir ''vector >'') * //Multithreading// (aunque esto no es útil en OIA o IOI) * El tipo long long es parte del estándar (aunque casi todos los compiladores ya lo permitían) Una lista mucho más detallada de los cambios se puede consultar en [[https://en.wikipedia.org/wiki/C%2B%2B11|Wikipedia]]