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.

5
Arguments de modèle par défaut pour les modèles de fonction
Pourquoi les arguments de modèle par défaut sont-ils autorisés uniquement sur les modèles de classe? Pourquoi ne pouvons-nous pas définir un type par défaut dans un modèle de fonction membre? Par exemple: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Au lieu de cela, C …
187 c++  templates 


21
Comment utiliser les énumérations comme indicateurs en C ++?
Traiter les enums comme des indicateurs fonctionne bien en C # via l' [Flags]attribut, mais quelle est la meilleure façon de le faire en C ++? Par exemple, j'aimerais écrire: enum AnimalFlags { HasClaws = 1, CanFly =2, EatsFish = 4, Endangered = 8 }; seahawk.flags = CanFly | EatsFish …
187 c++  enums 

14
Accolades inutiles en C ++?
En faisant une révision de code pour un collègue aujourd'hui, j'ai vu une chose particulière. Il avait entouré son nouveau code avec des accolades comme ceci: Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } Quel en est le résultat, le cas …

16
Comment appeler :: std :: make_shared sur une classe avec uniquement des constructeurs protégés ou privés?
J'ai ce code qui ne fonctionne pas, mais je pense que l'intention est claire: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); …
187 c++  c++11  shared-ptr 

3
fork () branches plus que prévu?
Considérez le morceau de code suivant: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Ce programme produit 8 points. Comment est-ce possible? Ne devrait-il pas y avoir 6 points à la place?
186 c++  c  fork 


1
Comment GCC et g ++ sont-ils amorcés?
Cela me dérange depuis un moment. Comment GCC et g ++ se compilent-ils? Je suppose que chaque révision est compilée avec une révision précédemment construite. Est-ce vrai? Et si c'est le cas, cela signifie-t-il que les versions les plus anciennes de g ++ et GCC ont été écrites en assembly?


17
Accéder à un tableau hors limites ne donne aucune erreur, pourquoi?
J'attribue des valeurs dans un programme C ++ hors des limites comme ceci: #include <iostream> using namespace std; int main() { int array[2]; array[0] = 1; array[1] = 2; array[3] = 3; array[4] = 4; cout << array[3] << endl; cout << array[4] << endl; return 0; } Le programme …
186 c++  arrays 

14
Quand utiliser la fonction en ligne et quand ne pas l'utiliser?
Je sais que inline est un indice ou une demande au compilateur et qu'il est utilisé pour éviter les frais généraux d'appel de fonction. Alors sur quelle base peut-on déterminer si une fonction est candidate ou non à l'inlining? Dans quel cas faut-il éviter l'inlining?
185 c++  c  inline 



4
Vous ne pouvez pas utiliser le module sur les doubles?
J'ai un programme en C ++ (compilé avec g ++). J'essaie d'appliquer deux doubles comme opérandes à la fonction de module, mais j'obtiens l'erreur suivante: erreur: opérandes non valides des types 'double' et 'double' en binaire 'opérateur%' Voici le code: int main() { double x = 6.3; double y = …
185 c++  modulo 


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.