
Envoyé par
indy2
Ce code ne compile pas ?
1 2 3 4 5 6 7
| template <class T>
class Bop
{
Bop(const Bop<T>& b) {}
template <class U> Bop(const Bop<U>& b) {}
}; |
non ca fait :
bop.cpp(6) : error C2535: '__thiscall Bop<U>::Bop<U>(const class Bop<U> &)' : member function already defined or declared
bop.cpp(4) : see declaration of 'Bop<T>::Bop<T>'
bop.cpp(7) : see reference to class template instantiation 'Bop<T>' being compiled
Bon il y a une astuce pas super propre... avec VC++ 6... bon les puristes vont pas être d'accord, mais quand on à pas le choix :-/
Au lieu de
template <class U> Bop(const Bop<U>& b) {}
tu mets
template <class U> Bop(Bop<U>& b) {}
Sans le const, et cela devrait compiler 
Enjoy
Partager