Bonjour,
J'ai une fonction :
Est-il possible de retrouver la dimension du tableau statique, à savoir 2, à partir du type de la fonction ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part void f(double tab[2]) {}
Il est possible de déduire la dimension d'un tableau statique avec une spécialisation template:
Toutefois, je n'arrive pas à le retrouver à partir du type de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 template<class> struct Size; template<class T, size_t N> struct Size < T[N] > { enum { value = N };}; std::cout << " size = " << Size<double[2]>::value << std::endl; // --> 2
ce qui donne l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 template<class> struct Traits; template<class X, size_t N> struct Traits< void (X[N])> { enum {value = N }; }; std::cout << " size = " << Traits<decltype(f)>::value << std::endl;
Donc je ne sais pas si c'est possible ... des idées ?error: template parameters not deducible in partial specialization:
template<class X, size_t N> struct Traits< void (X[N])>
Partager