Re: Spécialisation d'une fonction de classe template
1 réponse
Charles Brossollet
Lo=EFc Joly wrote:
> Charles Brossollet wrote:
> > Bonjour,
> >
> > J'essaie de sp=E9cialiser une fonction template membre d'une classe
> > template, mais j'arrive pas =C3 trouver la syntaxe. Quand je
sp=E9cialise
> > inline, vc++ compile, mais pas comeau online. Quand je sp=E9cialise
en
> > dehors de la classe (ce qui est ce que je veux), les 2 compilos me
> > jettent.
> >
> > Mon code:
> > [snip]
> > Merci d'avance
> >
>
> Dans "C++ templates" de Vandevoorde et Jossutis, on peut lire
p197-199 :
>
> template<typename T>
> class Outer {
> public:
> template<typename U>
> class Inner {
> [...]
> };
> [...]
> };
>
> [...]
>
> The template Outer<T>::Inner can also be specialized, but only for a
> given instance of Outer<T>.
> [...]
>
> // template<> cannot follow a template parameter list
> template<typename X>
> template<> class Outer<X>::Inner<void>; // ERROR!
>
>
> Donc, bien qu'ils n'expliquent pas vraiment les raisons, ils semblent
> dire que ce que tu souhaites faire est impossible. Ne peux tu pas
faire
> de f une fonction libre et utiliser la sp=E9cialisation partielle ?
Non, car la fonction en question c'est l'operateur d'assignation de ma
classe...