Bonjour,

J'aimerai simplifier l'utilisation d'une structure.
Actuellement, j'affiche la taille d'un "tableau statique" perso de la manière suivante.
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
La structure 'A' me sert à définir le type d'élément et la structure B à contenir mes élements.
Voici mon code :
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);
    };
};
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
cout << C<int, 0, 0, 0>::size << endl; //afficherait 3
Le premier paramètre de template étant le type et le reste étant la liste d'élement.

Ma question : est-ce possible ? Et si oui de quelle manière ?

A noter que cette version ne compile pas :
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;
};
J'ai comme l'impression que je surestime mon compilateur.

Merci.