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

C++ Discussion :

problème de namespace sous linux


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut problème de namespace sous linux
    Bonjour,

    j'ai un namespace MaLib :

    Voici le fichier MaLibFromString.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    namespace MaLib
    {
    	// Conversion d'une std::string en n'importe quel type
    	template<class T>
    	bool fromString(const std::string & str, T & dest);
     
    	// conversion d'une std::string en n'importe quel type. Il faut que le separateur soit
    	// un espace (espace blanc ou tabulation)
    	template<typename T>
    	void fromString(const std::string & str, std::vector<T> & v);	
    }
    comme toutes les fonctions sont template, tout le code est dans le .h

    Voici le fichier MaLibSplit.h
    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
     
    namespace MaLib
    {
    	MaLib_API void split(const std::string & str,char delim,std::vector<std::string> & v);
    	MaLib_API void split(const std::string & str,const std::string & delim,std::vector<std::string> & v);
     
    	// conversion d'une std::string en n'importe quel type. Il faut que le separateur soit
    	// un espace (espace blanc ou tabulation)
    	template<typename T>
    	void split(const std::string & str, std::vector<T> & v);
    }
     
    template<typename T>
    void MaLib::split(const std::string & str, std::vector<T> & v)
    {
    	v.clear();
    	MaLib::fromString(str, v);
    }
    Notez bien que la dernière fonction de MaLib::split appelle MaLib::fromString et que MaLib::fromString appelle MaLib::split

    Sous Windows visual Studio 2005 aucun problème. Tout compile et s'exécute. Sous linux, j'ai le problème : MaLib::split n'appartient pas au namespace MaLib. J'utilise gcc 4.1

    Avez-vous une idée d'où pourrait provenir l'erreur de compilation ?

    Merci beaucoup

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Pourquoi les déclarations de split se situent-elles dans un namespace BIBArchimede alors que sa définition la situe dans un namespace MaLib ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    désolé

    erreur de copier - coller

  4. #4
    Membre éclairé
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Points : 879
    Points
    879
    Par défaut
    GCC indique toujours la ligne de l'erreur. Serait-il possible de l'avoir ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Et si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    namespace MaLib
    {
        template<typename T>
        void MaLib::split(const std::string & str, std::vector<T> & v)
        {
            v.clear();
            MaLib::fromString(str, v);
        }
    }
    ?

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Tu n'as pas mis comment ces .h s'incluent l'un l'autre, mais j'ai l'impression que tu es dans la même situation que http://cpp.developpez.com/faq/cpp/?p...erence_croisee (avec le même genre de solution)
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. problème installation postgresql sous linux debian
    Par pimousse3000 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 14/12/2006, 13h08
  2. Problème erreurs sockets sous Linux
    Par Ange44 dans le forum Linux
    Réponses: 6
    Dernier message: 05/09/2006, 16h16
  3. Problème de portabilité sous Linux
    Par eG.dam dans le forum Linux
    Réponses: 4
    Dernier message: 23/06/2006, 23h06
  4. [WebService](SSL] Problème de SSL sous Linux
    Par Tueur_a_gage dans le forum JOnAS
    Réponses: 4
    Dernier message: 09/01/2006, 16h38
  5. Problème avec glutFullScreen() sous linux...
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/11/2004, 11h30

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