Petit problème de structure et de variadic template
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:
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:
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:
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 :cry: :
Code:
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. :mrgreen:
Merci.