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

Linux Discussion :

[C++] - Instanciation templates sous Unix (gcc)


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut [C++] - Instanciation templates sous Unix (gcc)
    Bonjour, je cherche l'équivalent sous Unix pour instancier des templates car cela varie selon le compilateur.

    Extrait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #ifdef BORLANDCPP
           // instanciation selon borland c++ builder
           template class __export DOUBLEN<1>;
           template class __export DOUBLEN<4>;
           template class __export DOUBLEN<10>;
    #else
           #ifdef GCC
           // instanciation pour Unix (gcc)
     
           #else
           // instanciation pour Visual Studio (visual c++)
           #endif
    #endif
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    Et si tu te basais sur les normes pour créer des templates ?

    La majorité des compilateurs respectent la norme C++ de 1998.

    Peut-on savoir ce que tu désires faire exactement ?

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Le mot clé export pour les template ne sert à rien, et surtout pas à ce qu'on croit qu'il fait, donc à oublier - voir More Exceptional C++ de Stutter pour des détails -
    Autrement, c'est identique pour tous les compilateurs.

  4. #4
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    swirtel: C'est pas moi qui a écrit le code, ma tâche est seulement de le rendre multi-palteforme.

    Il m'a dit que le __export servait pour la DLL

    Sous gcc si je fais seulement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    template class DOUBLEN<1>;
    template class DOUBLEN<4>;
    template class DOUBLEN<10>;
    Ca compile.
    Reste à savoir si le résultat sera le même.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    OK, c'est différent, là, l'histoire de la dll.
    regarde du côté de dllexport pour le compilo microsoft, pour GCC, la variable ou la fonction est par défaut exportée.

  6. #6
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    ouais pour microsoft c'est déja fait


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #ifdef WINDOWS_VERSION
            #ifdef BUILT_DLL_OUTIL
            #define DLLPORTOUTIL __declspec(dllexport)
            #else
            #define DLLPORTOUTIL __declspec(dllimport)
            #endif
    #else
            #define DLLPORTOUTIL
    #endif
    Avec les __export (dans le cas Borland et ca le sera également pour Visual c++)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    template class __export DOUBLEN<1>; 
    template class __export DOUBLEN<4>; 
    template class __export DOUBLEN<10>;
    Pour Unix je n'ai qu'a le laisser comme il est déja? (Puisqu'il l'exportera automatiquement?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    template class DOUBLEN<1>; 
    template class DOUBLEN<4>; 
    template class DOUBLEN<10>;

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Pour GCC, oui.

  8. #8
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    Merci pour ton aide Miles, très apprécié. C'est la première fois je travail dans un contexte multi-plateforme et c'est pas très évident!

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

Discussions similaires

  1. Erreur de compilation template sous GCC MINGW
    Par sukoi dans le forum Langage
    Réponses: 14
    Dernier message: 14/04/2015, 11h57
  2. Template sous unix (cc)
    Par loicbar dans le forum Linux
    Réponses: 6
    Dernier message: 06/11/2006, 18h12
  3. [Kylix] Kylix sous UNIX
    Par gRRosminet dans le forum EDI
    Réponses: 3
    Dernier message: 09/11/2004, 17h07
  4. Montage sur Debian de AFPS sous UNIX
    Par Harbaingan dans le forum Administration système
    Réponses: 2
    Dernier message: 14/01/2004, 22h03
  5. Chargement dynamique de DLL sous Unix
    Par Willou dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 18/12/2002, 18h25

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