Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc Bourguet
Nico writes:
template <class x> class vecteur { ... // IC définie friend ostream& operator<< (ostream&, const vecteur<x> &V) ; // surcharge de << ...
Ce que tu declares friend, c'est une fonction non template. Or tu utilises une fonction template:
et le .cpp qui correspond : (au fait, les definitions de template etant generalement utilisees
dans plus d'une unite de compilation se trouvent generalement dans des .hpp... pour plus de details, faire une recherche avec export et template dans ce groupe)
or tu desirerais que ce soit une instanciation d'un template. Ta solution
// IC définie template <class temp> friend ostream& operator<< (ostream&, const vecteur<temp> &V) ; // surcharge de <<
declare comme friend toute les instanciations. Si tu ne veux declarer que l'instanciation sur le bon type: friend ostream& operator<< <x> (ostream&, const vecteur<x> &V) ;
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Nico <nicolasPOINpoulain@ouvaton.org> writes:
template <class x>
class vecteur {
...
// IC définie
friend ostream& operator<< (ostream&, const vecteur<x> &V) ;
// surcharge de <<
...
Ce que tu declares friend, c'est une fonction non template. Or tu
utilises une fonction template:
et le .cpp qui correspond :
(au fait, les definitions de template etant generalement utilisees
dans plus d'une unite de compilation se trouvent generalement dans des
.hpp... pour plus de details, faire une recherche avec export et
template dans ce groupe)
or tu desirerais que ce soit une instanciation d'un template. Ta solution
// IC définie
template <class temp>
friend ostream& operator<< (ostream&, const vecteur<temp> &V) ;
// surcharge de <<
declare comme friend toute les instanciations. Si tu ne veux declarer
que l'instanciation sur le bon type:
friend ostream& operator<< <x> (ostream&, const vecteur<x> &V) ;
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
template <class x> class vecteur { ... // IC définie friend ostream& operator<< (ostream&, const vecteur<x> &V) ; // surcharge de << ...
Ce que tu declares friend, c'est une fonction non template. Or tu utilises une fonction template:
et le .cpp qui correspond : (au fait, les definitions de template etant generalement utilisees
dans plus d'une unite de compilation se trouvent generalement dans des .hpp... pour plus de details, faire une recherche avec export et template dans ce groupe)
or tu desirerais que ce soit une instanciation d'un template. Ta solution
// IC définie template <class temp> friend ostream& operator<< (ostream&, const vecteur<temp> &V) ; // surcharge de <<
declare comme friend toute les instanciations. Si tu ne veux declarer que l'instanciation sur le bon type: friend ostream& operator<< <x> (ostream&, const vecteur<x> &V) ;
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org