Mis à jour, voir ci-dessous! J'ai entendu et lu que C ++ 0x permet à un compilateur d'imprimer "Hello" pour l'extrait suivant #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Cela a apparemment quelque chose à voir avec les threads et les capacités d'optimisation. Il …
Motivation: la raison pour laquelle je considère que c'est que mon chef de projet de génie pense que le boost est une autre dépendance et que c'est horrible parce que "vous en dépendez" (j'ai essayé d'expliquer la qualité du boost, puis j'ai abandonné après un certain temps :( Une raison …
Supposons que je démarre un std::threadet puis detach()il, donc le thread continue à s'exécuter même si celui std::threadqui l'a représenté une fois, sort de la portée. Supposons en outre que le programme ne dispose pas d'un protocole fiable pour joindre le thread détaché 1 , de sorte que le thread …
J'ai parcouru le code source de Clang et j'ai trouvé cet extrait: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Pourquoi voudrais-je std::moveun std::shared_ptr? Y a-t-il un point de transfert de propriété sur une ressource partagée? Pourquoi ne ferais-je pas ça à la place? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { …
Je suppose que le «i» est un incrément et le «a» est assigné, mais je n'ai pas pu comprendre ou trouver la réponse. En outre, cela ressemble beaucoup à la non-standard, itoace qui, à mon avis, prête à confusion.
Considérez ce code C ++ 11: enum class Color : char { red = 0x1, yellow = 0x2 } // ... char *data = ReadFile(); Color color = static_cast<Color>(data[0]); Supposons que la donnée [0] soit en fait 100. Quelle est la couleur définie selon la norme? En particulier, si je …
Le code suivant se compile avec gcc 4.5.1 mais pas avec VS2010 SP1: #include <iostream> #include <vector> #include <map> #include <utility> #include <set> #include <algorithm> using namespace std; class puzzle { vector<vector<int>> grid; map<int,set<int>> groups; public: int member_function(); }; int puzzle::member_function() { int i; for_each(groups.cbegin(),groups.cend(),[grid,&i](pair<int,set<int>> group){ i++; cout<<i<<endl; }); } …
De tout le matériel que j'ai utilisé pour apprendre le C ++, autoa toujours été un spécificateur de durée de stockage étrange qui ne servait à rien. Mais récemment, j'ai rencontré du code qui l'utilisait comme nom de type en soi. Par curiosité, je l'ai essayé, et cela suppose le …
C ++ 0x introduit unordered_setce qui est disponible dans boostet dans de nombreux autres endroits. Ce que je comprends, c'est qu'il unordered_sets'agit d'une table de hachage avec une O(1)complexité de recherche. D'un autre côté, ce setn'est rien d'autre qu'un arbre avec une log(n)complexité de recherche. Pourquoi diable quelqu'un utiliserait-il à …
Quelle est la logique derrière le mot clé «using» en C ++? Il est utilisé dans différentes situations et j'essaie de trouver si tous ceux-ci ont quelque chose en commun et il y a une raison pour laquelle le mot-clé "using" est utilisé comme tel. using namespace std; // to …
Il semble que autoc'était une fonctionnalité assez importante à ajouter dans C ++ 11 qui semble suivre un grand nombre des nouveaux langages. Comme avec un langage comme Python, je n'ai vu aucune déclaration de variable explicite (je ne sais pas si c'est possible en utilisant les standards Python). Y …
Quel est le but du finalmot clé en C ++ 11 pour les fonctions? Je comprends que cela empêche le remplacement de fonction par des classes dérivées, mais si tel est le cas, n'est-il pas suffisant de déclarer vos finalfonctions comme non virtuelles ? Y a-t-il autre chose qui me …
Je suis nouveau sur C ++ 11. J'écris la fonction lambda récursive suivante, mais elle ne se compile pas. sum.cpp #include <iostream> #include <functional> auto term = [](int a)->int { return a*a; }; auto next = [](int a)->int { return ++a; }; auto sum = [term,next,&sum](int a, int b)mutable ->int …
Dans le C ++ traditionnel, le passage par valeur dans les fonctions et les méthodes est lent pour les objets volumineux et est généralement mal vu. Au lieu de cela, les programmeurs C ++ ont tendance à passer des références, ce qui est plus rapide, mais qui introduit toutes sortes …
J'avais une perception que, le type d'un lambda est un pointeur de fonction. Lorsque j'ai effectué le test suivant, j'ai trouvé que c'était faux ( démo ). #define LAMBDA [] (int i) -> long { return 0; } int main () { long (*pFptr)(int) = LAMBDA; // ok auto pAuto …
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.