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
Exécuter la fonction à l'intérieur du modèle de fonction uniquement pour les types ayant la fonction définie
J'ai un modèle de fonction qui prend de nombreux types différents en entrée. Parmi ces types, un seul a une getInt()fonction. Par conséquent, je veux que le code exécute la fonction uniquement pour ce type. Veuillez suggérer une solution. Merci #include <type_traits> #include <typeinfo> class X { public: int getInt(){ …

6
Comment comparer des structures génériques en C ++?
Je veux comparer les structures de manière générique et j'ai fait quelque chose comme ça (je ne peux pas partager la source réelle, alors demandez plus de détails si nécessaire): template<typename Data> bool structCmp(Data data1, Data data2) { void* dataStart1 = (std::uint8_t*)&data1; void* dataStart2 = (std::uint8_t*)&data2; return memcmp(dataStart1, dataStart2, sizeof(Data)) …

2
Comment une const expr peut-elle être évaluée si rapidement
J'ai essayé des expressions const qui sont évaluées au moment de la compilation. Mais j'ai joué avec un exemple qui semble incroyablement rapide lorsqu'il est exécuté au moment de la compilation. #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); } int main …
13 c++  const  constexpr 


4
L'explication de l'ordre détendu est-elle erronée dans la référence?
Dans la documentation de std::memory_ordersur cppreference.com, il y a un exemple de commande détendue: Commande détendue Les opérations atomiques marquées memory_order_relaxedne sont pas des opérations de synchronisation; ils n'imposent pas d'ordre entre les accès simultanés à la mémoire. Ils garantissent uniquement la cohérence de l'ordre d'atomicité et de modification. Par …



1
Bogue du compilateur possible dans MSVC
Le code suivant se compile avec gcc et clang (et de nombreux autres compilateurs C ++ 11) #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template <typename T> class data { public: data(datatype dt = …
13 c++  c++11  visual-c++ 


2
Comment déterminer les fichiers d'en-tête à inclure?
Disons que j'ai le code (très simple) ci-dessous. #include <iostream> int main() { std::cout << std::stoi("12"); } Cela compile bien sur g ++ et clang; cependant, il ne parvient pas à compiler sur MSVC avec l'erreur suivante: erreur C2039: 'stoi': n'est pas membre de 'std' erreur C3861: 'stoi': identifiant introuvable …
13 c++ 


1
Opérateur ambigu dans gcc
J'ai fait un modèle de fonction pour imprimer certains des conteneurs stl #include <iostream> #include <vector> #include <string> template <template <typename, typename> class C, typename T, typename A> std::ostream& operator<<(std::ostream& os, const C<T, A>& container) { for (auto& elem : container) { os << elem << " "; } return …
13 c++  c++17 


1
Pourquoi les mêmes variables locales externes nommées dans différents blocs obtiennent des liens différents entre les compilateurs en c ++?
Pendant que je vérifiais simplement quels liens sont accordés aux variables locales externes, j'ai constaté que certains comportements différents entre les compilateurs par exemple, si j'ai testé le code ci-dessous comme vous le voyez dans les commentaires, les variables varont des liens différents // foo.cpp int var = 10; // …
12 c++  g++  clang++  extern  linkage 

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.