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

Visual C++ Discussion :

utilisation de vector sous VC++6


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut utilisation de vector sous VC++6
    Bonjour,
    est-il problématique d'utiliser la STL avec VC++ 6 ?

    Je rencontre pas mal de warning pour du code pourtant très basqiue.

    c:\program files\microsoft visual studio\vc98\include\xmemory(39) : warning C4100: '_P' : unreferenced formal parameter
    c:\program files\microsoft visual studio\vc98\include\xmemory(41) : warning C4100: '_P' : unreferenced formal parameter
    c:\program files\microsoft visual studio\vc98\include\vector(249) : warning C4663: C++ language change: to explicitly specialize class template 'vector' use the following syntax:
    template<> class vector<bool,class std::allocator<unsigned int> > ...
    c:\program files\microsoft visual studio\vc98\include\vector(156) : warning C4018: '<' : signed/unsigned mismatch
    c:\program files\microsoft visual studio\vc98\include\vector(156) : while compiling class-template member function 'void __thiscall std::vector<unsigned int,class std::allocator<unsigned int> >::insert(unsigned int *,unsigned int,const unsigned int &)'
    c:\program files\microsoft visual studio\vc98\include\vector(167) : warning C4018: '<' : signed/unsigned mismatch
    c:\program files\microsoft visual studio\vc98\include\vector(156) : while compiling class-template member function 'void __thiscall std::vector<unsigned int,class std::allocator<unsigned int> >::insert(unsigned int *,unsigned int,const unsigned int &)'
    c:\program files\microsoft visual studio\vc98\include\vector(156) : warning C4018: '<' : signed/unsigned mismatch
    c:\program files\microsoft visual studio\vc98\include\vector(156) : while compiling class-template member function 'void __thiscall std::vector<class Chaine,class std::allocator<class Chaine> >::insert(class Chaine *,unsigned int,const class Chaine &)'
    c:\program files\microsoft visual studio\vc98\include\vector(167) : warning C4018: '<' : signed/unsigned mismatch
    c:\program files\microsoft visual studio\vc98\include\vector(156) : while compiling class-template member function 'void __thiscall std::vector<class Chaine,class std::allocator<class Chaine> >::insert(class Chaine *,unsigned int,const class Chaine &)'
    c:\program files\microsoft visual studio\vc98\include\xmemory(37) : warning C4100: '_P' : unreferenced formal parameter
    c:\program files\microsoft visual studio\vc98\include\xmemory(68) : see reference to function template instantiation 'void __cdecl std::_Destroy(unsigned int *)' being compiled
    Linking...

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu es en /W4, visiblement...

    Si tu veux virer ces warnings, tu peux les désactiver avec quelques pragmas avant tes includes...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #pragma warning(push) //J'espère que VC6 supporte le push pour les warnings...
    #pragma warning(disable:4100) //unreferenced formal parameter
    #pragma warning(disable:4018) //etc.
    #include <vector>
    #pragma warning(pop)
    Pour le warning C4663 par contre, tu peux le désactiver aussi, mais c'est vraiment le warning le plus ridicule que j'aie vu dans le SDK lié à un compilateur...

    On dirait qu'ils n'ont jamais essayé de compiler leur STL en /W4...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    D'accord pour virer les warnings, mais derrière, est-ce que le support de la STL est OK en VC++ 6 en général ?

    Je débute sous VC++ 6 et je me demande si c'est une bonne idée de faire appel à la STL à droite à gauche dans le projet si cela doit être source de problème pour la suite.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Citation Envoyé par NiamorH Voir le message
    D'accord pour virer les warnings, mais derrière, est-ce que le support de la STL est OK en VC++ 6 en général ?
    Plus ou moins.
    Leur STL a quelques bugs connus, qui sont décrits sur le site de Dinkumware, la boîte qui la leur a vendue...

    Mais peut-être que tu peux résoudre le problème en téléchargeant un SDK plus récent que celui d'origine. Le dernier à être officiellement supporté par Visual Studio 6 est celui de Février 2003...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Et je rajoute :

    L'utilisation de la stl sous VC++ est même conseillée pour faire un programme plus standard et plus portable. Mais en effet sous VC++ 6 de 1998 tout court, la STL a encore quelques bugs, il faut obtenir un SDK plus récent. Merci Médinoc pour ces trucs de #pragma pour enlever les warnings !!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  6. #6
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Un exemple : apperement il y a eu un bug (c'est pas moi qui l'ai vu ni corrigé) lors de l'utilisation des fonctions isalpha, isalnum et isspace de la STL.

    En mode debug elles se comportaient correctement et plus en release... notamment le caractère £.

    Je pourrais pas rentrer plus dans les détails car j'ai pas vu le code, mais ça me fait me poser des questions sur l'utilisation de la STL dans le projet.

    Pour le SDK récent, VS6 SP6 est déjà installé.

Discussions similaires

  1. Je ne peux pas utiliser vector sous VS2008
    Par xyz911 dans le forum C++
    Réponses: 7
    Dernier message: 20/05/2009, 09h37
  2. [FreePascal] Utilisation de Graph sous FreePascal
    Par tit charles dans le forum Free Pascal
    Réponses: 6
    Dernier message: 13/12/2004, 13h56
  3. [D8] Utilisation dll D7 sous D8
    Par smyley dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 01/11/2004, 11h28
  4. Comment utiliser Site Exec sous FTP
    Par phig dans le forum Développement
    Réponses: 2
    Dernier message: 12/08/2003, 17h11
  5. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24

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