De plus, l'implémentation de la déduction du type de retour a été mise à jour pour correspondre à la norme N3638. Plus précisément, cela permet d'utiliser decltype(auto) à la place du auto seul :
Code : | Sélectionner tout |
1 2 3 | int& f(); auto i1 = f(); // int decltype(auto) i2 = f(); // int& |
Code : | Sélectionner tout |
[x = 42]{ ... };
Toutefois, il faut savoir que les tableaux à taille variable n'apparaîtront peut être pas dans C++14, mais seront intégrés dans un document à part et peut être dans C++17.
Code : | Sélectionner tout |
1 2 3 4 5 | void f(int n) { int a[n] = { 1, 2, 3 }; // envoie std::bad_array_length si n < 3 [&a]{ for (int i : a) { cout << i << endl; } }(); &a; // erreur, accès à l'adresse d'un tableau à taille variable } |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 | class A; int bar(int n); #if __cplusplus > 201103 class [[deprecated("A is deprecated in C++14; Use B instead")]] A; [[deprecated("bar is unsafe; use foo() instead")]] int bar(int n); int foo(int n); class B; #endif A aa; // warning: 'A' is deprecated : A is deprecated in C++14; Use B instead int j = bar(2); // warning: 'int bar(int)' is deprecated : bar is unsafe; use foo() instead |
Code : | Sélectionner tout |
1 2 3 4 5 | int i = 1048576; int j = 1'048'576; int k =0x10'0000; int m = 0'004'000'000; int n = 0b0001'0000'0000'0000'0000'0000; |
Code : | Sélectionner tout |
1 2 | double x = 1.602'176'565e-19; double y = 1.602'176'565e-1'9; |
Code : | Sélectionner tout |
1 2 | // un objet fonctionnel qui incrémente n'importe quel type auto incr = [](auto x) { return x++; }; |
- correction des fonctions membres constexpr sans const ;
- implémentation de la fonction std::exchange() ;
- adressage des tuples par le type ;
- implémentation de std::make_unique ;
- implémentation de std::shared_lock ;
- std::result_of respecte SFINAE ;
- ajout de l'opérateur () à integral_constant ;
- ajout d'expressions définies par l'utilisateur pour les types de la bibliothèque standard std::basic_string, std::chrono::duration et std::complex ;
- ajout de manipulateurs E/S pour les chaînes de caractères entre guillemets ;
- ajout de membres constexpr à <utility>, <complex>, <chrono> et quelques conteneurs ;
- ajout de std::integer_sequence traité au moment de la compilation ;
- ajout de traits de transformation plus propres ;
- modification des foncteurs de <functional> plus faciles à utiliser et plus génériques.
G++ embarque maintenant une implémentation de std::experimental::optional et std::experimental::string_view.
La fonction std::copy_exception est maintenant dépréciée et sera supprimée dans la prochaine version. Vous devez utiliser std::make_exception_ptr à la place.
Votre opinion
Utilisez-vous GCC ? Pourquoi le préférez-vous aux autres compilateurs ?
Source
Modifications de la version 4.9