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 :

problème STL avec VC++6 ( je ne veux pas de pragma )


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut problème STL avec VC++6 ( je ne veux pas de pragma )
    Hello, créez un projet console avec VC++6 avec simplement un main


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //#pragma warning( disable : 4786 ) ? pourquoi utiliser ce pragma ??
     
    #include <map>
    #include <string>
     
    std::multimap<std::string,std::string> mon_multimap;
     
    void main()
    {
     
    }
    on obtient des tonnes de warning ( 77 exactement je ne vais pas tous les mettre ) :
    c:\program files\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,
    est-ce grave docteur ?
    Quelqu'un sait comment faire une bonne déclaration sans utiliser le pragma que j'ai mis en commentaire ?
    Ou bien la STL de VC6 est-elle incompatible ?

    Avec std::list et std::vector c'est pareil..
    Merci pour les réponses

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il faut savoir que VC6 est... très vieux (je me demande même s'il n'est pas antérieur à la norme actuellement en cours )

    Il n'est donc pas tout à fait exclu que la gestion de la STL qu'il fait soit quelque peu... aléatoire

    Quant à savoir si c'est grave...

    Dans un monde parfais, on te répondrait que tout avertissement fournis par le compilateur devrait être contrôlé, voir réécrit, afin qu'il ne survienne plus.

    Dans le monde réel, il te sera facile de m'objecter la difficulté que tu rencontrera à modifier la STL fournie par microsoft afin de supprimer les avertissements

    En soi, on peut être divisés entre le fait de se dire que "de toutes façons, cela compile et le programme réagit exactement comme il le doit" et celui de se dire que "mais parmis tous ces avertissement, il y en a peut être un dans le code que j'ai écrit qui, lui, risque de mener à la catastrophe", selon que l'on soit plus ou moins pessimiste/réaliste

    La question subsidiaire consiste sans doute à savoir si le fait de placer le pragma empêche tous les avertissements y compris les plus sensibles, ou si cela n'empêche que les avertissements "non critiques"...

    Dans le doute, je te conseillerais en tout cas fortement, mais bon, ce n'est que mon avis de non fan des outils de programmation microsoft, de chercher une version plus récente de l'outil, voire, carrément, de te tourner vers un autre compilateur (Gcc, par exemple)

    Pour info, il semblerait que les trois lignes que tu a données ne correspondent même pas à l'énoncé du premier avertissement complet
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    Les compilateurs des versions vc.net(7.0)-vc2003(7.1)-vc2005(8)-vc2008(9) sont gratuits. VC6 est très obsolète (bientot 10 ans !).

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Citation Envoyé par LeGreg Voir le message
    Les compilateurs des versions vc.net(7.0)-vc2003(7.1)-vc2005(8)-vc2008(9) sont gratuits. VC6 est très obsolète (bientot 10 ans !).
    LeGreg
    VC++6 me convient parfaitement.
    J'ai tenté de convertir un projet professionnel ATL-COM sous VC++2005 impossible je me suis arraché les cheveux de la tête.
    Très déçu par cet outil c'est une vrai usine à gaz avec des tas de fichiers générés aussi inutiles qu'encombrants comme les manifests.
    Mais c'est un autre débat..

  5. #5
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Moi aussi je travaille (contraint ) sous VC6. Et moi aussi j'ai ce genre de warings
    warning C4786: 'blablabla ' : identifier was truncated to '255' characters in the debug information
    Et je n'ai pas trouver d'autres solution que le pragma (cf. faq)

    Pourquoi veut tu te passer du pragma ?
    Parce qu'une l'autre seule solution que je voit serait de baisser le niveau d'avertissement dans les options avancées du compilo mais ça serait une très mauvaise idée.

  6. #6
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Citation Envoyé par befalimpertinent Voir le message
    Pourquoi veut tu te passer du pragma ?
    bonne question ; he bien c'est parce que si tu as un warning c'est que tu as une mauvaise habitude de programmation et qu'il risque d'y avoir des effets de bords , bugs fonctionnels etc...

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Merci pour la réponse
    Citation Envoyé par koala01 Voir le message
    Salut,


    Il n'est donc pas tout à fait exclu que la gestion de la STL qu'il fait soit quelque peu... aléatoire
    Pour info, il semblerait que les trois lignes que tu a données ne correspondent même pas à l'énoncé du premier avertissement complet
    je pensais que c'était incorrect syntaxiquement.
    Vaut-il mieux passer par un namespace ( je vais essayer ) ?

    Citation Envoyé par koala01 Voir le message
    Dans le monde réel, il te sera facile de m'objecter la difficulté que tu rencontrera à modifier la STL fournie par microsoft afin de supprimer les avertissements
    inconcevable , irréalisable je n'ai pas du tout le temps pour cela...
    moi il faut que ça fonctionne...
    Citation Envoyé par koala01 Voir le message
    Dans le doute, je te conseillerais en tout cas fortement, mais bon, ce n'est que mon avis de non fan des outils de programmation microsoft, de chercher une version plus récente de l'outil, voire, carrément, de te tourner vers un autre compilateur (Gcc, par exemple)
    je suis à 500 pour cent satisfait de Visual C++ 6 c'est mon outil de développement préféré et question déboguer des crashes il est assez costaud ( pas comme certains autres compilateurs que je possède mais pas de polémiques )

  8. #8
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Merci pour la réponse
    <snip>

    inconcevable , irréalisable je n'ai pas du tout le temps pour cela...
    moi il faut que ça fonctionne...
    C'était bien dans ce sens que je l'entendais
    je suis à 500 pour cent satisfait de Visual C++ 6 c'est mon outil de développement préféré et question déboguer des crashes il est assez costaud ( pas comme certains autres compilateurs que je possède mais pas de polémiques )
    Ben, visiblement non, étant donné que tu souhaite ne pas utiliser la "méthode officielle" pour contourner le problème

    Sans le moins du monde vouloir lancer la polémique, je persiste dans mon optique que le fait d'utiliser un compilateur "ante deluvien" au point qu'il date d'avant la norme actuelle n'est pas la meilleure des choses à faire...

    Je signe donc l'affirmation selon laquelle il serait peut être vraiment temps d'envisager le passage à un outil plus récent (quel qu'il soit )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    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
    J'ajouterai que si tu as eu du mal à convertir ton projet, c'est qu'il peut ne respecter pas tout à fait le standard du C++...

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Tu peux peut-etre essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #pragma warning( push )
    #pragma warning( disable : 4786 )
    #include <map>
    #include <string>
    #pragma warning( pop )
     
    std::multimap<std::string,std::string> mon_multimap;
     
    void main()
    {
     
    }
    Je n'ai pas vc6, je ne peux donc verifier si ca suffit...
    Il y a toujours un pragma mais juste pour les inclusions, du coup les warnings dans ton code apparaitront toujours, ce qui est sans doute suffisant.

    MAT.

  11. #11
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Sans le moins du monde vouloir lancer la polémique, je persiste dans mon optique que le fait d'utiliser un compilateur "ante deluvien" au point qu'il date d'avant la norme actuelle n'est pas la meilleure des choses à faire...
    Cela n'a pas d'importance.
    Du moment que ça fonctionne qu'on puisse batir un projet qui tourne fichier->exécuter, pourvu que le code soit relativement propre et maintenable et qu'il n'y ait pas de memory leaks c'est le principal...
    Merci en tout cas pour les réponses

  12. #12
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Cela n'a pas d'importance.
    Du moment que ça fonctionne qu'on puisse batir un projet qui tourne fichier->exécuter, pourvu que le code soit relativement propre et maintenable et qu'il n'y ait pas de memory leaks c'est le principal...
    C'est ton point de vue... Mais je ne le partage absolument pas...

    Entendons nous, je suis d'accord avec le fait que ce que l'on demande à un projet est de fonctionner, d'être propre, maintenable et d'éviter les fuites mémoires... Mais pour moi, les deux premiers termes sont, justement, fortement lié à une préférence marquée pour ce qui respecte la norme

    Maintenant, commencer à débattre pour savoir si mon point de vue est préférable au tien n'a sans doute pas sa place ici, et je crois que l'on pourrait débattre 106 ans sur le sujet sans que l'un n'arrive à convaincre l'autre
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. [STL]Problème itérateur avec list
    Par Fiquet dans le forum SL & STL
    Réponses: 7
    Dernier message: 03/10/2005, 17h54
  2. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20
  3. problèmes bizarres avec jdbc
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 12/12/2003, 12h00
  4. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02
  5. problème JSP avec JBuilder et Weblogic 7
    Par viny dans le forum JBuilder
    Réponses: 2
    Dernier message: 24/04/2003, 08h07

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