Le noexceptmot-clé peut être appliqué de manière appropriée à de nombreuses signatures de fonction, mais je ne sais pas quand je devrais envisager de l'utiliser dans la pratique. Sur la base de ce que j'ai lu jusqu'à présent, l'ajout de dernière minute noexceptsemble résoudre certains problèmes importants qui surviennent lorsque …
Dans une transmission parfaite, std::forwardest utilisé pour convertir les références rvalue nommées t1et les t2références rvalue non nommées. Quel est le but de faire cela? Comment cela affecterait-il la fonction appelée innersi nous quittons t1& t2as lvalues? template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); …
J'essaie de comprendre les références rvalue et de déplacer la sémantique de C ++ 11. Quelle est la différence entre ces exemples et lequel d'entre eux ne fera pas de copie vectorielle? Premier exemple std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); Deuxième exemple std::vector<int>&& …
MyClass a1 {a}; // clearer and less error-prone than the other three MyClass a2 = {a}; MyClass a3 = a; MyClass a4(a); Pourquoi? Je n'ai pas pu trouver de réponse sur SO, alors laissez-moi répondre à ma propre question.
Je suis nouveau pour déplacer la sémantique en C ++ 11 et je ne sais pas très bien comment gérer les unique_ptrparamètres dans les constructeurs ou les fonctions. Considérez cette classe se référençant elle-même: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr …
Veuillez prendre note des mises à jour à la fin de cet article. Mise à jour: j'ai créé un projet public sur GitHub pour cette bibliothèque! J'aimerais avoir un modèle unique qui, une fois pour toutes, s'occupe de l'impression de tous les conteneurs STL via operator<<. En pseudo code, je …
Je suis assez familier avec le C ++ 11 de std::thread, std::asyncet des std::futurecomposants (voir par exemple cette réponse ), qui sont simple. Cependant, je n'arrive pas à comprendre ce qui std::promiseest, ce qu'il fait et dans quelles situations il est le mieux utilisé. Le document standard lui-même ne contient …
j'ai un cours template<size_t N, size_t M> class Matrix { // .... }; Je veux faire un typedefqui crée un Vector(vecteur de colonne) qui est équivalent à un Matrixavec des tailles N et 1. Quelque chose comme ça: typedef Matrix<N,1> Vector<N>; Ce qui produit une erreur de compilation. Ce qui …
J'essaie de mettre à jour mon compilateur C ++ vers C ++ 11. J'ai cherché un peu et je suis arrivé à la conclusion que je dois utiliser le drapeau -std=c++0xou -std=gnu++0x, mais je ne sais pas beaucoup de choses sur les drapeaux. Quelqu'un peut-il m'aider? (J'utilise Ubuntu 12.04.) Voici …
unique_ptr<T>ne permet pas la construction de copie, mais prend en charge la sémantique de déplacement. Pourtant, je peux retourner un à unique_ptr<T>partir d'une fonction et affecter la valeur retournée à une variable. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // …
Lorsque j'essaie d'exécuter un makefile généré par CMake pour compiler mon programme, j'obtiens l'erreur La plage basée sur les boucles n'est pas prise en charge en mode C ++ 98. J'ai essayé d' ajouter add_definitions(-std=c++0x)à mon CMakeLists.txt, mais il n'a pas aidé. J'ai aussi essayé ça: if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=gnu++0x) endif() Quand …
На этот вопрос есть ответы на Stack Overflow на рdedом : Чем std :: unique_lock отличается от std :: lock_guard? J'ai deux cas d'utilisation. A. Je veux synchroniser l'accès par deux threads à une file d'attente. B. Je veux synchroniser l'accès de deux threads à une file d'attente et utiliser …
Il me semble qu'avoir une "fonction qui renvoie toujours 5" brise ou dilue le sens de "appeler une fonction". Il doit y avoir une raison, ou un besoin pour cette capacité, sinon ce ne serait pas en C ++ 11. Pourquoi est-il là? // preprocessor. #define MEANING_OF_LIFE 42 // constants: …
L'exemple courant pour les boucles for () basées sur la plage C ++ 11 est toujours quelque chose de simple comme ceci: std::vector<int> numbers = { 1, 2, 3, 4, 5, 6, 7 }; for ( auto xyz : numbers ) { std::cout << xyz << std::endl; } Dans ce …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.