Questions marquées «c++11»

Utilisez cette balise pour le code qui doit être compilé en C ++ 11 (sans utiliser les fonctionnalités introduites en C ++ 14 ou version ultérieure).





4
Pourquoi utiliserais-je push_back au lieu de emplace_back?
Les vecteurs C ++ 11 ont la nouvelle fonction emplace_back. Contrairement à push_back, qui repose sur les optimisations du compilateur pour éviter les copies, emplace_backutilise un transfert parfait pour envoyer les arguments directement au constructeur pour créer un objet sur place. Il me semble que emplace_backtout push_backpeut faire, mais parfois …
232 c++  c++11  std 


10
Les fonctions lambda peuvent-elles être modélisées?
En C ++ 11, existe-t-il un moyen de modèle d'une fonction lambda? Ou est-il intrinsèquement trop spécifique pour être modelé? Je comprends que je peux plutôt définir une classe / un foncteur de modèles classique, mais la question est plus comme: le langage autorise-t-il les modèles de fonctions lambda?
230 c++  templates  lambda  c++11 

4
Quel type de pointeur dois-je utiliser quand?
Ok, donc la dernière fois que j'ai écrit C ++ pour gagner ma vie, std::auto_ptrc'était toute la lib std disponible, et boost::shared_ptrc'était à la mode. Je n'ai jamais vraiment examiné les autres types de pointeurs intelligents fournis. Je comprends que C ++ 11 fournit maintenant certains des types de boost …

10
Quels changements de rupture sont introduits dans C ++ 11?
Je sais qu'au moins une des modifications de C ++ 11 qui entraînera l'arrêt de la compilation de l'ancien code: l'introduction de explicit operator bool()dans la bibliothèque standard, remplaçant les anciennes instances de operator void*(). Certes, le code que cela cassera est probablement un code qui n'aurait pas dû être …
227 c++  c++11 




2
Pourquoi ne puis-je pas repousser un unique_ptr dans un vecteur?
Quel est le problème avec ce programme? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } L'erreur: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const …

6
make_unique et transfert parfait
Pourquoi n'y a-t-il pas de std::make_uniquemodèle de fonction dans la bibliothèque C ++ 11 standard? je trouve std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); un peu bavard. Les éléments suivants ne seraient-ils pas beaucoup plus agréables? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Cela cache newbien et ne mentionne le type qu'une seule …


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.