J'ai une classe de modèle avec un paramètre de modèle int et un modèle. Maintenant, je veux me spécialiser une fonction membre:Comment se spécialiser membre de la classe de modèle avec le paramètre de modèle de modèle
template <int I> class Default{};
template <int N = 0, template<int> class T = Default> struct Class
{
void member();
};
// member definition
template <int N, template<int> class T> inline void Class<N, T>::member() {}
// partial specialisation, yields compiler error
template <template<int> class T> inline void Class<1, T>::member() {}
Quelqu'un peut-il me dire si cela est possible et ce que je fais mal sur la dernière ligne?
EDIT: Je voudrais remercier tout le monde pour leur contribution. Comme j'ai aussi besoin d'une spécialisation pour certains T, j'ai opté contre la solution de contournement proposée par Nawaz et spécialisé toute la classe, car il n'y avait qu'une fonction membre et un membre de données de toute façon.