Bonjour,
J'aimerai simplifier l'utilisation d'une structure.
Actuellement, j'affiche la taille d'un "tableau statique" perso de la manière suivante.
La structure 'A' me sert à définir le type d'élément et la structure B à contenir mes élements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cout << A<int>::B<0,0,0>::size << endl; // affiche 3 cout << A<char>::B<0,0,0,0>::size << endl; // affiche 4
Voici mon code :
Maintenant j'aimerais simplifier ma méthode d'affichage en utilisant qu'une seule structure comme par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 template <typename I> struct A { template <I ... elements> struct B { static const int size = sizeof...(elements); }; };
Le premier paramètre de template étant le type et le reste étant la liste d'élement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cout << C<int, 0, 0, 0>::size << endl; //afficherait 3
Ma question : est-ce possible ? Et si oui de quelle manière ?
A noter que cette version ne compile pas :
J'ai comme l'impression que je surestime mon compilateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 template <typename I, typename... elements> struct C { const int size = A<I>::B<elements...>::size; };
Merci.
Partager