Si vous lisez du code comme auto&& var = foo(); où fooest toute fonction retournant par valeur de type T. Alors varest une lvalue de type rvalue référence à T. Mais qu'est-ce que cela implique var? Cela signifie-t-il que nous sommes autorisés à voler les ressources de var? Existe-t-il des …
Le titre est assez auto-descriptif. J'ai téléchargé Qt Creator 2.7.0 et j'essaie de compiler du code de base C ++ 11: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } Je reçois l'erreur suivante: range based for loops are not allowed in …
Est-il possible de capturer par référence const dans une expression lambda? Je souhaite que le devoir indiqué ci-dessous échoue, par exemple: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string strings[] = { "hello", "world" }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string …
Scott Meyers a publié le contenu et le statut de son prochain livre EC ++ 11. Il a écrit qu'un élément du livre pourrait être "Eviter std::enable_ifles signatures de fonction" . std::enable_if peut être utilisé comme argument de fonction, comme type de retour ou comme modèle de classe ou paramètre …
Si je déclare une classe de base (ou une classe d'interface) et spécifie une valeur par défaut pour un ou plusieurs de ses paramètres, les classes dérivées doivent-elles spécifier les mêmes valeurs par défaut et si ce n'est pas le cas, quelles valeurs par défaut se manifesteront dans les classes …
Ce morceau de code fait conceptuellement la même chose pour les trois pointeurs (initialisation sûre du pointeur): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; Et donc, quels sont les avantages d'attribuer des pointeurs nullptrplutôt que de leur attribuer les valeurs NULLou 0?
La norme C ++ 11 (ISO / IEC 14882: 2011) dit dans § C.1.1: char* p = "abc"; // valid in C, invalid in C++ Pour le C ++, c'est OK car un pointeur vers un littéral de chaîne est dangereux car toute tentative de le modifier conduit à un …
Grâce à C ++ 11, nous avons reçu la std::functionfamille des wrappers de foncteurs. Malheureusement, je n'entends que de mauvaises choses à propos de ces nouveaux ajouts. Le plus populaire est qu'ils sont horriblement lents. Je l'ai testé et ils sont vraiment nuls par rapport aux modèles. #include <iostream> #include …
J'ai vu ceci ici: Move Constructor appelant Move Constructor de classe de base Quelqu'un pourrait-il expliquer: la différence entre std::moveet std::forward, de préférence avec quelques exemples de code? Comment y penser facilement et quand utiliser lequel
J'ai du mal à comprendre l'utilisation des pointeurs intelligents en tant que membres de classe dans C ++ 11. J'ai beaucoup lu sur les pointeurs intelligents et je pense comprendre comment unique_ptret shared_ptr/ weak_ptrfonctionne en général. Ce que je ne comprends pas, c'est l'usage réel. Il semble que tout le …
Comment capturer par déplacement (également appelé référence rvalue) dans un lambda C ++ 11? J'essaye d'écrire quelque chose comme ceci: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };
J'essaie de faire travailler un exemple simple pour comprendre comment l'utiliser std::enable_if. Après avoir lu cette réponse , j'ai pensé qu'il ne devrait pas être trop difficile de trouver un exemple simple. Je veux utiliser std::enable_ifpour choisir entre deux fonctions membres et n'autoriser qu'une seule d'entre elles à être utilisée. …
C ++ 0x montre un exemple d'utilisation std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Quand est-il toujours avantageux de l'utiliser std::forward? En outre, il nécessite de l'utiliser &&dans la déclaration des paramètres, est-ce valable dans tous les cas? Je pensais que vous deviez passer des temporaires à une …
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.