C ++ 17 est le nom du standard C ++ approuvé en 2017. Il s'appuie sur l'ancien standard C ++ 14, améliorant le langage de base et la bibliothèque standard, et ajoutant quelques nouvelles fonctionnalités de langage.
Considérez les 2 surcharges suivantes template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } Le 1er fonctionne pour les classes régulières, tandis que le 2ème fonctionne pour les modèles qui ne sont pas instanciés. Par exemple: std::cout<<test<int>()<<std::endl; <-- this yields 1 …
J'essaie d'accéder au contenu d'une variante. Je ne sais pas ce qu'il y a dedans, mais heureusement, la variante le fait. J'ai donc pensé demander à la variante sur quel index il se trouve, puis utiliser cet index pour std::getson contenu. Mais cela ne compile pas: #include <variant> int main() …
J'ai joué avec la std::string_viewbibliothèque et j'ai envisagé de changer une base de code sur laquelle je travaillais pour utiliser std::string_viewautant que possible. Cependant, dans de nombreux threads que j'ai lus sur le sujet de quand et où utiliser à la std::string_viewplace de const std::string &. J'ai vu de nombreuses …
Je crée une classe de type chaînage, comme le petit exemple ci-dessous. Il semble que lors du chaînage des fonctions membres, le constructeur de copie soit invoqué. Existe-t-il un moyen de se débarrasser de l'appel du constructeur de copie? Dans mon exemple de jouet ci-dessous, il est évident que je …
Je pense que c'est une question assez directe. J'aimerais spécifiquement utiliser std::get_time, mais cela nécessite une sorte de flux à utiliser. Je passe les données dans un string_viewet j'aimerais éviter de les copier juste pour analyser la date.
Considérez le programme de démonstration suivant. #include <iostream> int main() { typedef float T; 0.f.T::~T(); } Ce programme est compilé par Microsoft Visual Studio Community 2019. Mais clanget gccémettre une erreur comme celle-ci prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7 | 0.f.T::~T(); | ^~~~~ Si pour écrire …
J'ai écouté et lu plusieurs articles, discussions et questions sur le stackoverflow std::atomic, et je voudrais être sûr d'avoir bien compris. Parce que je suis toujours un peu confus avec la visibilité des écritures de la ligne de cache en raison de retards possibles dans les protocoles de cohérence de …
La spécification C ++ spécifie-t-elle l'ordre operator newet le constructeur de Ain new C(A()). Le g ++ laisse l'ordre être A()-> new-> C(), mais clang ++ le laisse être new-> A()-> C(). La différence est-elle causée par un comportement non spécifié? g ++: 7.4.0 clang ++: 10.0.0 #include <iostream> #include …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.