Questions marquées «c++»

C ++ est un langage de programmation à usage général. Il a été initialement conçu comme une extension de C et a une syntaxe similaire, mais c'est maintenant un langage complètement différent. Utilisez cette balise pour les questions sur le code (à compiler) avec un compilateur C ++. Utilisez une balise spécifique à la version pour les questions liées à une révision standard spécifique [C ++ 11], [C ++ 14], [C ++ 17] ou [C ++ 20], etc.

4
Est-il valide d'utiliser std :: transform avec std :: back_inserter?
Cppreference a cet exemple de code pour std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Mais cela dit aussi: std::transformne garantit pas l'application dans l'ordre de unary_opou binary_op. Pour appliquer une fonction à une séquence dans l'ordre ou pour appliquer une fonction qui …


3
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 soit 77 777 7777. Ce code est-il censé …
19 c++ 

2
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 c++  visual-c++  types 

3
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 from thread %d\n", id); } int main() { …




2
Pourquoi le concept same_as vérifie-t-il deux fois l'égalité de type?
En regardant l'implémentation possible du concept same_as sur https://en.cppreference.com/w/cpp/concepts/same_as, j'ai remarqué qu'il se passe quelque chose d'étrange. namespace detail { template< class T, class U > concept SameHelper = std::is_same_v<T, U>; } template< class T, class U > concept same_as = detail::SameHelper<T, U> && detail::SameHelper<U, T>; La première question est …
19 c++  c++20  concept 


5
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 << ' '; std::cout << '\n'; } private: const std::vector<int>& numbers; }; …
18 c++ 

3
Les valeurs de fermeture lambda peuvent être passées en tant que paramètres de référence rvalue
J'ai trouvé que lvalueles fermetures lambda peuvent toujours être passées en tant que rvalueparamètres de fonction. Voir la démonstration simple suivante. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works …


4
É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 …
17 c++  c++11  c++14  c++17  c++20 


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.