IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres éditeurs Discussion :

Pb de version avec g++


Sujet :

Autres éditeurs

  1. #1
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut Pb de version avec g++
    Bonjour à tous !

    Nous avons un petit problème de compilation avec g++. En fait nous faisons une surcharge de l'opérateur << au sein d'une classe comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    template<typename T>
    class Maclasse
    {
    //... constructeurs & co
     
    //surcharge de l'opérateur
    friend ostream & operator<< <>(ostream & os, Maclasse g);
    };
    Je définis ensuite cette fonctionne en dehors de la classe comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    template <typename T>
    ostream & operator << (ostream & os, Maclasse<T> g)
    {
     return os << "tests" << endl;
    }
    LA compilation et l'utilisation de cette cclasse fonctionnent sans probleme sur g++ version 3.3.X et 2.95.3 ainsi que sous visual C++ 8.0.

    Cependant j'utilise actuellement g++ 3.4.1 et la compilation me cree une erreur, disant que le template ne correspond pas:

    error: template-id `operator<< <>' for `std::basic_ostream<char, std::char_traits<char> >& operator<<(std::basic_ostream<char, std::char_traits<char> >&, Maclasse<int>)' does not match any template declaration

    Quelqu'un aurait il une idée?

    Merci

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut Résolu
    Rebonjour !!

    On a pu résoudre l'erreur. Apparemment, il faut déclarer la classe et la surcharge de la fonction en début de programme.
    La solution a été trouvée sur le site suivant:
    http://www.docu.sd.id.ethz.ch/comp/s...chapter_9.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include <iostream> 
    using namespace std; 
     
    // Forward declaration of King required for forward declaration of operator<<. 
    template<class T> 
    class King; 
     
    // Forward declaration of operator<< required for definition of class King. 
    template<class T> 
    ostream& operator<<( ostream& o, const King<T>& king ); 
     
    template<class T> 
    class King { T money; public: King( T value ) : money(value) {} 
        // Guiding declaration 
        friend ostream& operator<<( ostream&, const King<T>& );
    }; 
    template<class T> 
    ostream& operator<<( ostream& o, const King<T>& king ) { 
        // operator<< accesses private member king.money. 
        return o << king.money; 
    }
    [/url]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion de version avec Eclipse
    Par Jahjouh dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/11/2006, 10h07
  2. Le magazine de developpez.com, version avec ou sans fond de page ?
    Par cchatelain dans le forum Evolutions du club
    Réponses: 17
    Dernier message: 18/10/2006, 22h12
  3. Versioning avec DreamWeaver
    Par cocaetjusdorange dans le forum Dreamweaver
    Réponses: 5
    Dernier message: 05/10/2006, 11h27
  4. [CVS]Gestion de 2 versions avec une partie commune
    Par Gromitou dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 19/02/2004, 14h32
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo