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
Est-il possible d'utiliser std :: string dans une constexpr?
Utilisation de C ++ 11, Ubuntu 14.04, la chaîne d'outils par défaut de GCC . Ce code échoue: constexpr std::string constString = "constString"; erreur: le type 'const string {aka const std :: basic_string}' de la variable constexpr 'constString' n'est pas littéral ... parce que ... 'std :: basic_string' a un …

3
Qu'est-ce que std :: atomic exactement?
Je comprends que std::atomic<>c'est un objet atomique. Mais dans quelle mesure atomique? À ma connaissance, une opération peut être atomique. Qu'entend-on exactement par rendre un objet atomique? Par exemple, s'il y a deux threads exécutant simultanément le code suivant: a = a + 12; Alors toute l'opération est-elle (disons add_twelve_to(int)) …

2
shared_ptr à un tableau: faut-il l'utiliser?
Juste une petite question concernant shared_ptr. Est-ce une bonne pratique d'utiliser le shared_ptrpointage vers un tableau? Par exemple, shared_ptr<int> sp(new int[10]); Sinon, pourquoi pas? L'une des raisons dont je suis déjà conscient est que l'on ne peut pas augmenter / décrémenter le shared_ptr. Par conséquent, il ne peut pas être …
172 c++  c++11  shared-ptr 

2
Pourquoi les lambdas peuvent-elles être mieux optimisées par le compilateur que les fonctions simples?
Dans son livre, The C++ Standard Library (Second Edition)Nicolai Josuttis déclare que les lambdas peuvent être mieux optimisées par le compilateur que les fonctions simples. De plus, les compilateurs C ++ optimisent les lambdas mieux que les fonctions ordinaires. (Page 213) Pourquoi donc? Je pensais qu'en matière d'inlining, il ne …





2
fonction de membre d'échange d'ami public
Dans la belle réponse à l' idiome copier-et-échanger, il y a un morceau de code dont j'ai besoin d'un peu d'aide: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray, second.mArray); } // ... }; et il ajoute une …

3
En quoi «= default» est-il différent de «{}» pour le constructeur et le destructeur par défaut?
J'ai initialement posté cela comme une question uniquement sur les destructeurs, mais maintenant j'ajoute la considération du constructeur par défaut. Voici la question originale: Si je veux donner à ma classe un destructeur qui est virtuel, mais qui est sinon le même que ce que le compilateur générerait, je peux …


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.