J'entends que cela constsignifie thread-safe dans C ++ 11 . Est-ce vrai? Est -ce que cela veut dire constest maintenant l'équivalent de Java desynchronized ? Sont-ils à court de mots clés ?
J'ai une classe appelée Writerqui a une fonction writeVectorcomme ceci: void Drawer::writeVector(vector<T> vec, bool index=true) { for (unsigned int i = 0; i < vec.size(); i++) { if (index) { cout << i << "\t"; } cout << vec[i] << "\n"; } } J'essaie de ne pas avoir de code …
Il est possible d'écrire une fonction qui, lorsqu'elle est compilée avec un compilateur C retournera 0, et lorsqu'elle sera compilée avec un compilateur C ++, retournera 1 (la solution triviale avec #ifdef __cplusplusn'est pas intéressante). Par exemple: int isCPP() { return sizeof(char) == sizeof 'c'; } Bien sûr, ce qui …
const auto&suffirait si je veux effectuer des opérations en lecture seule. Cependant, je suis tombé sur for (auto&& e : v) // v is non-const quelques fois récemment. Cela me fait me demander: Est-il possible que, dans certains cas obscurs, l'utilisation de références de transfert présente un avantage en termes …
J'écrivais juste une fabrique d'objets génériques et j'utilisais la méta-bibliothèque du préprocesseur boost pour créer un modèle variadique (en utilisant 2010 et cela ne les prend pas en charge). Ma fonction utilise des références rval et std::forwardpour faire un transfert parfait et cela m'a fait réfléchir ... quand C ++ …
Je viens de perdre trois jours de ma vie à traquer un bug très étrange où unordered_map :: insert () détruit la variable que vous insérez. Ce comportement très peu évident se produit uniquement dans les compilateurs très récents: j'ai trouvé que clang 3.2-3.4 et GCC 4.8 sont les seuls …
C ++ 11 offre plusieurs façons d'itérer sur des conteneurs. Par exemple: Boucle basée sur la plage for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) Cependant, quelle est la manière recommandée d'itérer sur deux (ou plus) conteneurs de même taille pour accomplir quelque chose comme: for(unsigned i = 0; …
J'ai un code qui ressemble plus ou moins à ceci: #include <bitset> enum Flags { A = 1, B = 2, C = 3, D = 5, E = 8, F = 13, G = 21, H, I, J, K, L, M, N, O }; void apply_known_mask(std::bitset<64> &bits) { const …
En C ++ 11, nous pouvons écrire ce code: struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 quand j'appelle std::move, cela signifie que je veux déplacer l'objet, c'est-à-dire que je vais changer l'objet. Déplacer un constobjet n'est pas raisonnable, alors pourquoi ne std::moverestreint-il pas …
En général, je suppose que les flux ne sont pas synchronisés, c'est à l'utilisateur de faire le verrouillage approprié. Cependant, des choses comme coutobtenir un traitement spécial dans la bibliothèque standard? Autrement dit, si plusieurs threads écrivent, coutpeuvent-ils corrompre l' coutobjet? Je comprends que même si synchronisé, vous obtiendrez toujours …
Comment puis-je parcourir un tuple (en utilisant C ++ 11)? J'ai essayé ce qui suit: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); mais cela ne fonctionne pas: Erreur 1: désolé, non implémenté: impossible de développer 'Listener ...' dans une liste d'arguments de longueur fixe. Erreur 2: je ne peux pas apparaître dans …
Il me semble voir de nombreuses réponses dans lesquelles quelqu'un suggère d'utiliser <random>pour générer des nombres aléatoires, généralement avec un code comme celui-ci: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); Habituellement, cela remplace une sorte d '«abomination impie» telle que: srand(time(NULL)); rand()%6; Nous pourrions critiquer l'ancienne méthode en affirmant …
Existe-t-il un moyen de convertir un enum classchamp en type sous-jacent? Je pensais que ce serait automatique, mais apparemment pas. enum class my_fields : unsigned { field = 1 }; unsigned a = my_fields::field; Cette affectation est rejetée par GCC. error: cannot convert 'my_fields' to 'unsigned int' in assignment.
Avec presque tout le code que j'écris, je suis souvent confronté à des problèmes de réduction d'ensembles sur des collections qui finissent par se retrouver avec des conditions naïves «si» à l'intérieur. Voici un exemple simple: for(int i=0; i<myCollection.size(); i++) { if (myCollection[i] == SOMETHING) { DoStuff(); } } Avec …
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.