Questions marquées «c++»

38
Modèle de méta-programmation

Quelqu'un peut-il m'expliquer pourquoi la première méthode de méta-programmation de modèle va en boucle infinie, mais la seconde fonctionne correctement. #include <iostream> using namespace std; template<int N, int M> struct commondivs { static const int val = (N<M) ?...

34
Surcharger une fonction à l'aide de modèles

J'essaie de définir une fonction à l'aide de modèles et je veux que le nom de type soit int ou anEnum (une énumération spécifique que j'avais définie). J'ai essayé ce qui suit mais j'ai échoué: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool...

33
Est-il légal d'allouer de nouveau un pointeur pour fonctionner?

Les pointeurs vers des fonctions ne sont pas de simples pointeurs de données car ils ne peuvent pas être stockés dans un pointeur void *. Néanmoins, il semble que je puisse stocker la copie d'un pointeur de fonction dans la mémoire dynamique (en gcc et clang) comme dans le code ci-dessous. Un tel...

32
Décltype C ++ et parenthèses - pourquoi?

Le sujet a été discuté auparavant , mais ce n'est pas un doublon. Lorsque quelqu'un demande la différence entre decltype(a)et decltype((a)), la réponse habituelle est - aest une variable, (a)est une expression. Je trouve cette réponse insatisfaisante. Tout d'abord, ac'est aussi une expression. Les...

30
Comment s'appelle le (…) en C et C ++?

L'une des utilisations de ...est de désigner des entités variadiques en C et C ++. Quel est son nom? Est-il classé comme opérateur ou autre chose lorsqu'il est utilisé de cette façon? D'autres détails concernant ...? Edit: je connais le but de .... Je pose des questions sur son nom et sa...

28
Pourquoi ma classe n'est-elle pas constructible par défaut?

J'ai ces cours: #include <type_traits> template <typename T> class A { public: static_assert(std::is_default_constructible_v<T>); }; struct B { struct C { int i = 0; }; A<C> a_m; }; int main() { A<B::C> a; } Lors de la compilation, a_mn'est pas constructible par défaut...