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


4
Éviter l'instruction if dans une boucle for?
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 …



3
Quel est l'avantage d'utiliser des références de transfert dans des boucles for basées sur des plages?
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 …

1
Comment appeler std :: forward sur tous les arguments d'une fonction variadique?
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 ++ …




6
Pourquoi pouvons-nous utiliser `std :: move` sur un objet` 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 …
113 c++  c++11 

4
Le cout est-il synchronisé / thread-safe?
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 …
112 c++  gcc  c++11 

20
Comment pouvez-vous parcourir les éléments d'un std :: tuple?
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 …

8
Comment semer le mt19937 PRNG de manière succincte, portable et complète?
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 …
112 c++  c++11  random 

4
Une classe enum peut-elle être convertie en type sous-jacent?
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.
112 c++  c++11 


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.