Questions marquées «c++»

19
C ++ Threads inside for loop print false values

J'essaie de comprendre le multi-threading en c ++, mais je suis coincé dans ce problème: si je lance des threads dans une boucle for, ils affichent des valeurs incorrectes. Voici le code: #include <iostream> #include <list> #include <thread> void print_id(int id){ printf("Hello...

19
int numeral -> règles de conversion du pointeur

Considérez le code suivant. void f(double p) {} void f(double* p) {} int main() { f(1-1); return 0; } MSVC 2017 ne compile pas cela. Il suppose qu'il y a un appel surchargé ambigu, comme 1-1c'est le même 0et donc peut être converti en double*. D'autres astuces, comme 0x0, 0Lou...

19
Comportement indéfini dans le vecteur de vecteurs cast

Pourquoi ce code écrit-il un nombre indéfini d'entiers apparemment non initialisés? #include <iostream> #include <vector> using namespace std; int main() { for (int i : vector<vector<int>>{{77, 777, 7777}}[0]) cout << i << ' '; } Je m'attendais à ce que la sortie...

18
Comment résoudre le problème de ref

Le programme court suivant #include <vector> #include <iostream> std::vector<int> someNums() { return {3, 5, 7, 11}; } class Woop { public: Woop(const std::vector<int>& nums) : numbers(nums) {} void report() { for (int i : numbers) std::cout << i << ' ';...

17
Est-ce un ancien constructeur de style C ++?

Voici un morceau de code C ++. Dans cet exemple, de nombreux blocs de code ressemblent à des appels de constructeur. Malheureusement, le code de blocage # 3 ne l'est pas (vous pouvez le vérifier en utilisant https://godbolt.org/z/q3rsxn et https://cppinsights.io ). Je pense que c'est une ancienne...

17
Énumération continue C ++ 11

Existe-t-il un moyen de vérifier en C ++ 11 si une énumération est continue ? Il est tout à fait valide de donner des valeurs d'énumération qui ne le sont pas. Existe-t-il peut-être une fonctionnalité comme un trait de type en C ++ 14, C ++ 17 ou peut-être C ++ 20 pour vérifier si l'énumération est...