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 :

question rapide sur les warning


Sujet :

C++

  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut question rapide sur les warning
    Pour vous, doit on virer ton les warning d'une compilation? et donc les considérer comme une erreur?

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Je configure mon compilateur est au niveau super sensible
    Je n'active pas l'option warning = erreur
    mais de toutes façons, je ne continue pas tant qu'il y a des warnings
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Je suis tenté de dire oui.
    Si un warning est affiché, c'est pas pour rien, il faut en tenir compte, c'est pas pour les chiens. Bien souvent les warnings sont sur ces broutilles, des erreurs d'inattention, ça ne te tuera pas de les corriger.
    Si vraiment il y a certains warnings que tu ne peux pas éviter, soit, on pourrait alors préconiser un réglage du compilo pour inhiber ces warnings là et toujours bénéficier de la levée de tous les autres, toujours dans l'idée d'avoir une compilation "sans warning".

    Et comme on dit toujours, un bon réglage de ton compilo t'évitera déjà pas mal de bugs

  4. #4
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    bonjour,

    assez d'accord, quand le temps et le client le permettent j essaye de tout virer c'est toujours plus tranquilisant, excepter sous visual studio les trucs du genre sprintf deprecated utiliser sprintf_s
    "vaste programme"

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Pour la plupart ok.
    Mais certain j'hésite.
    Par exemple l'utilisation de int et uint dans un calcul.
    Un warning est donné, et je le trouve important de le garder. Justement parce qu'un cast pour virer le warning n'est peut être pas la solution...


    Je trouve que ça permet de donner une trace d'un problème potentielle. Et cela bien mieux qu'un commentaire que l'on ne lira pas

  6. #6
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    et changer l une des 2 variables en signée ou non pour etre conforme ?
    "vaste programme"

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par BainE Voir le message
    et changer l une des 2 variables en signée ou non pour etre conforme ?
    parce que cast de -1 en unsigned int est si vite arrivé

  8. #8
    Membre expérimenté

    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
    Points : 1 543
    Points
    1 543
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Par exemple l'utilisation de int et uint dans un calcul.
    Un warning est donné, et je le trouve important de le garder. Justement parce qu'un cast pour virer le warning n'est peut être pas la solution...
    Et garder un warning n'est pas forcément le plus malin non plus, cf. par ex quelques explications.
    Et un peu de code pour illustrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BOOST_AUTO_TEST_CASE( IntegralPromotion )
    {
        int i = -1;
        unsigned int j = 0;
        BOOST_CHECK( i < j );
    }
    Produit le fameux warning :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    warning C4018: '<' : signed/unsigned mismatch
    Et donne comme résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error in "IntegralPromotion": check i < j failed
    (le test échoue, i n'est pas < à j)

    Citation Envoyé par Mongaulois Voir le message
    parce que cast de -1 en unsigned int est si vite arrivé
    Pas besoin de transtypage, le mécanisme de promotion/conversion sur les entiers s'en charge très bien.

    MAT.

  9. #9
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Mat007 Voir le message
    Et garder un warning n'est pas forcément le plus malin non plus, cf. par ex quelques explications.
    C'est typiquement mon exemple en faite
    Ce n'est pas toujours évident de le résoudre. ET surtout pas toujours nécessaires...
    Je trouve que garder le warning est utile pour garder la trace de ce risque potentiel

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 22
    Points
    22
    Par défaut
    Salut,

    pour ma part, il n'y a pas grand chose qui m'énerve plus que les gens qui laissent traîner des warnings, surtout dans le cadre d'un travail collaboratif.
    Cà rend rapidement les traces du compilo illisibles; une tonne de warning "mineurs" préexistants (pour autant qu'un warning puisse etre considéré comme mineur), type de flood qui arrive très vite, peut masquer un warning important introduit par des modifications ultérieures (genre, les miennes) ...
    Donc pour ma part, je compile autant que possible systématiquement en -Wall -Werror

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    -Wall n'est pas suffisant.
    L'idéal c'est -std=c++98 -Wall -Wextra -pedantic

    ou -std=g++98 pour avoir les extensions GNU, comme les tableaux de taille variable.
    Boost ftw

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    En C, on ajoute -Wwrite-strings, mais je ne sais jamais si c'est déjà implicite en C++ ou non...
    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.

  13. #13
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    okok. Merci des reponses.
    Le warning est le sous-fifre de error, il faut donc les éradiquer.

    Je mettrais résolu un peu plus tard, au cas où quelqu'un à autre chose à ajouter.

    Merci a tous

Discussions similaires

  1. [AC-2002] Question rapide sur les classes
    Par zak_mckraken dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/01/2010, 17h56
  2. Réponses: 15
    Dernier message: 03/08/2009, 23h08
  3. Réponses: 5
    Dernier message: 22/08/2008, 10h59
  4. Question générale sur les affectations ?
    Par Clemaster dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2004, 17h03
  5. Question simple sur les threads :)
    Par momox dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2003, 04h13

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