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

SL & STL C++ Discussion :

pb de portage de Sunstudio 8 a 11


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par défaut pb de portage de Sunstudio 8 a 11
    Bonjour,

    En migrant un code STL de Sunstudio 8 a 11 j'ai un petit pb de signature lors de l'utilisation de list<T>::unique();

    la signature est devenue plus strict en intégrant des const et prend
    la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     void unique (bool (*)(const_reference, const_reference));
    la modification est donc simple avec une fonction ( ajouter des const sur les 2 param )

    par contre je n'arrive plus a compiler avec un foncteur de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    struct mon_foncteur
    {
     int param;
     mon_foncteur( int p):param(p){};
     bool operator() (const A & a, const A & a2)const { return a<a2;};
    }
    Auriez vous une idée, pour que le foncteur réponde à la nouvelle signature ?


    merci

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    mettre l'operateur < const?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par défaut
    Hello,

    merci pour ta proposition,
    ca vient plutot de la signature que du code.
    l'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error: Could not find a match for std::list<int>::unique(mypred) needed in main(int, char**)
    j'ai refait le code de base:

    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
    23
    24
     
    struct mypred1
    {
        int param;
        mypred1(int p):param(p){};
        bool operator()(const int & a,const int & b){return a<b ;};
     
    };
     
    bool mypred2( const int & a, const int & b)
    {
    return a<b;    
    }
     
    main(...)
    {
    ...
        list<int> l;
        mypred mypred1(5);
        l.unique(mypred1); // ne compile pas
        l.unique(mypred2); // compile
    ...
     
    }

Discussions similaires

  1. portage oracle pl/SQL -> PostGreSQL
    Par luta dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/05/2004, 11h40
  2. probleme portage Unix --> Windows
    Par casier dans le forum MFC
    Réponses: 5
    Dernier message: 22/01/2004, 21h12
  3. portage 16b -> 32b d'une dll
    Par ben23 dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 23/12/2003, 12h15
  4. [TP]Portage d'un encodeur MP3 Fortran en pur Pascal...
    Par Christophe Fantoni dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 04/07/2003, 17h34
  5. [Kylix] portage d'application kylix3
    Par lefort dans le forum EDI
    Réponses: 1
    Dernier message: 14/11/2002, 21h23

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