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).

8
Quand devrais-je vraiment utiliser noexcept?
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 …

6
Quels sont les principaux objectifs de l'utilisation de std :: forward et quels problèmes cela résout-il?
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)); …

6
C ++ 11 rvalues ​​and move semantics confusion (instruction de retour)
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>&& …


6
Comment passer un argument unique_ptr à un constructeur ou à une fonction?
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 …



9
Qu'est-ce que std :: promise?
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 …

1
Typedef de modèle C ++
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 …
369 c++  templates  c++11  typedef 

5
Compiler C ++ 11 avec g ++
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 …
368 c++  c++11  g++  flags 

5
Renvoyer unique_ptr à partir des fonctions
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; // …
367 c++  c++11  unique-ptr 

14
Comment activer C ++ 11 dans CMake?
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 …
356 c++11  cmake 


14
Quand devez-vous utiliser la capacité constexpr en C ++ 11?
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: …
337 c++  c++11  constexpr 


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.