class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; Je pense que la raison en est que les tableaux ne peuvent être initialisés qu'avec la =syntaxe, c'est-à-dire: int arr[3] = {1,3,4}; Des questions Comment puis-je faire …
J'ai vu du code quelque part dans lequel quelqu'un a décidé de copier un objet et de le déplacer par la suite vers une donnée membre d'une classe. Cela m'a laissé dans la confusion en ce sens que je pensais que tout l'intérêt de bouger était d'éviter de copier. Voici …
Selon les sources que j'ai trouvées, une expression lambda est essentiellement implémentée par le compilateur créant une classe avec un opérateur d'appel de fonction surchargé et les variables référencées en tant que membres. Cela suggère que la taille des expressions lambda varie et que, compte tenu de suffisamment de variables …
(Remarque: tupleet tiepeut être extrait de Boost ou C ++ 11.) Lors de l'écriture de petites structures avec seulement deux éléments, j'ai parfois tendance à choisir a std::pair, car toutes les choses importantes sont déjà faites pour ce type de données, comme operator<pour l'ordre strict-faible . Les inconvénients sont cependant …
J'ai un vecteur de IInventory *, et je suis en train de parcourir la liste en utilisant la plage C ++ 11 pour faire des choses avec chacun. Après avoir fait quelques trucs avec un, je veux peut-être le supprimer de la liste et supprimer l'objet. Je sais que je …
En C ++ 11, comment pourrais-je écrire une fonction (ou une méthode) qui prend un std :: array de type connu mais de taille inconnue? // made up example void mulArray(std::array<int, ?>& arr, const int multiplier) { for(auto& e : arr) { e *= multiplier; } } // lets imagine …
En C ++ 11, il existe des modèles variadiques comme celui-ci: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } Il y a quelques curiosités à ce sujet: L'expression std::forward<Args>(args)...utilise les deux Argset argsun seul ...jeton. De plus, std::forwardune fonction de modèle non …
Quelle est la différence entre std::system_clocket std::steady_clock? (Un exemple de cas illustrant différents résultats / comportements serait formidable). Si mon objectif est de mesurer précisément le temps d'exécution des fonctions (comme un benchmark), quel serait le meilleur choix entre std::system_clock, std::steady_clocket std::high_resolution_clock?
Suis-je autorisé à déplacer des éléments hors d'un std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Puisque std::intializer_list<T>nécessite une attention particulière du compilateur et n'a pas de sémantique de valeur comme les …
Supposons que j'ai trois objets compilés, tous produits par le même compilateur / version : A a été compilé avec le standard C ++ 11 B a été compilé avec le standard C ++ 14 C a été compilé avec le standard C ++ 17 Pour plus de simplicité, supposons …
Je veux savoir quelles sont les différences sémantiques entre la proposition de concepts complets de C ++ et les contraintes de modèle (par exemple, les contraintes apparaissant dans Dlang ou la nouvelle proposition de concepts-lite pour C ++ 1y ). Que sont les concepts à part entière capables de faire …
C ++ 11 a ajouté de nouvelles fonctions de conversion de chaîne: http://en.cppreference.com/w/cpp/string/basic_string/stoul Il inclut stoi (chaîne en entier), stol (chaîne en long), stoll (chaîne en long long), stoul (chaîne en long non signé), stoull (chaîne en long non signé). Notable en son absence est une fonction stou (chaîne non …
J'ai commencé à essayer le standard C ++ 11 et j'ai trouvé cette question qui décrit comment appeler votre ctor à partir d'un autre ctor de la même classe pour éviter d'avoir une méthode init ou autre. Maintenant, j'essaye la même chose avec un code qui ressemble à ceci: hpp: …
Comment puis-je générer la valeur d'un enum classen C ++ 11? En C ++ 03, c'est comme ça: #include <iostream> using namespace std; enum A { a = 1, b = 69, c= 666 }; int main () { A a = A::c; cout << a << endl; } en …
Je me demandais comment vérifier correctement si un std::functionest vide. Prenons cet exemple: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Ce code se compile très bien dans MSVC mais si j'appelle doSomething()sans initialiser eventFuncle code …
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.