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.

3
Le programme multithreading est bloqué en mode optimisé mais s'exécute normalement en -O0
J'ai écrit un simple programme multithreading comme suit: static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } Il se comporte normalement en mode débogage dans Visual studio …

2
Comment fonctionne ce code de modèle pour obtenir la taille d'un tableau?
Je me demande pourquoi ce type de code peut obtenir la taille du tableau de test? Je ne connais pas la grammaire du modèle. Peut-être que quelqu'un pourrait expliquer la signification du code ci-dessous template<typename,size_t>. En outre, un lien de référence est également préféré. #define dimof(array) (sizeof(DimofSizeHelper(array))) template <typename T, …
61 c++  visual-c++ 



3
L'opérateur d'égalité n'est pas défini pour une implémentation d'opérateur de vaisseau spatial personnalisé en C ++ 20
Je rencontre un comportement étrange avec le nouvel opérateur de vaisseau spatial <=>en C ++ 20. J'utilise le compilateur Visual Studio 2019 avec /std:c++latest. Ce code se compile très bien, comme prévu: #include <compare> struct X { int Dummy = 0; auto operator<=>(const X&) const = default; // Default implementation …


5
Chaîne conviviale de modèle en numérique en C ++
Dans la bibliothèque standard C ++, il existe des fonctions pour convertir des chaînes en types numériques: stoi stol stoll stoul stoull stof stod stold mais je trouve fastidieux de les utiliser dans le code du modèle. Pourquoi il n'y a pas de fonctions de modèle comme: template<typename T> T …


2
Algorithme pour trouver une solution pour A xor X = B + X
Étant donné l'entier A et B, trouvez l'entier X de sorte que: A, B <2 * 1e18 A xou X = B + X Je doute fortement qu'il soit possible de résoudre cette équation en utilisant les mathématiques. C'est un problème de codage que j'ai rencontré il y a 3 …
46 c++  xor 

3
std :: vector (ab) utilise le stockage automatique
Considérez l'extrait de code suivant: #include <array> int main() { using huge_type = std::array<char, 20*1024*1024>; huge_type t; } Évidemment, cela planterait sur la plupart des plates-formes, car la taille de pile par défaut est généralement inférieure à 20 Mo. Considérez maintenant le code suivant: #include <array> #include <vector> int main() …

3
Comment puis-je obtenir la profondeur d'un vecteur std :: multidimensionnel au moment de la compilation?
J'ai une fonction qui prend une dimension multidimensionnelle std::vectoret nécessite que la profondeur (ou le nombre de dimensions) soit transmise en tant que paramètre de modèle. Au lieu de coder en dur cette valeur, je voudrais écrire une constexprfonction qui prendra std::vectoret retournera la profondeur comme unsigned integervaleur. Par exemple: …

2
Pourquoi operator! = Est-il supprimé en C ++ 20 pour de nombreux types de bibliothèques standard?
Selon cppreference , std::type_info::operator!=est supprimé avec C ++ 20, cependant, std::type_info::operator==reste apparemment. Quel est le raisonnement derrière? Je pourrais être d'accord pour comparer l'inégalité comme étant dénuée de sens, mais alors comparer pour l'égalité serait tout aussi insignifiant, non? De même, operator!=de nombreux autres types de bibliothèques standard, y compris …



7
Façon idiomatique de distinguer deux constructeurs sans arg
J'ai une classe comme ça: struct event_counts { uint64_t counts[MAX_COUNTERS]; event_counts() : counts{} {} // more stuff }; Habituellement, je veux initialiser par défaut (zéro) le countstableau comme indiqué. À des emplacements sélectionnés identifiés par le profilage, cependant, je voudrais supprimer l'initialisation du tableau, car je sais que le tableau …

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.