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 :

message d'avertissement à supprimer


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut message d'avertissement à supprimer
    Bonjour, j'ai le code suivant (je la fais simple) :

    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
     
    enum TypeTrace
    {
      TRACE1,
      TRACE2
    };
     
    enum TypeGraphe
    {
       GRAPHE1,
       GRAPHE2
    };
     
    TypeGraphe Trace2Graphe(TypeTrace type)
    {
      switch(type)
      {
        case TRACE1 : return GRAPHE1;
        case TRACE2 : return GRAPHE2;
      }
    }
    ce code me renvoie le message suivant (Visual 2005)

    warning C4715: not all control paths return a value
    je comprends le message, mais pourtant j'ai mis tous les types de mon enum dans ma fonction. Du coup, le default ne sert à rien.

    => que dois-je faire pour ne plus avoir ce message mais je voudrais que ce message apparaisse si j'oublie de mettre un enum dans ma fonction ?

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut
    Bonjour,

    Je pense que cette petite modification peut supprimer le warning:
    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
    enum TypeTrace
    {
      TRACE1,
      TRACE2
    };
     
    enum TypeGraphe
    {
       GRAPHE1,
       GRAPHE2
    };
     
    TypeGraphe Trace2Graphe(TypeTrace type)
    {
      TypeGraphe retour = GRAPHE1;
      switch(type)
      {
        case TRACE1 : retour = GRAPHE1;break;
        case TRACE2 : retour = GRAPHE2;break;
      }
      return retour;
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 59
    Points : 120
    Points
    120
    Par défaut
    Salut

    en D ça s'appelle final switch, mais en C/C++ je pense qu'il n'y a pas de solution à part un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    default : assert(0);
    et le warning peut sauter avec un #pragma ignore

    Cdt

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par zenetcalme Voir le message
    Bonjour,

    Je pense que cette petite modification peut supprimer le warning:
    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
    enum TypeTrace
    {
      TRACE1,
      TRACE2
    };
     
    enum TypeGraphe
    {
       GRAPHE1,
       GRAPHE2
    };
     
    TypeGraphe Trace2Graphe(TypeTrace type)
    {
      TypeGraphe retour = GRAPHE1;
      switch(type)
      {
        case TRACE1 : retour = GRAPHE1;break;
        case TRACE2 : retour = GRAPHE2;break;
      }
      return retour;
    }
    salut,
    cela revient donc à faire une sorte de "default"...

  5. #5
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut
    Citation Envoyé par salseropom Voir le message
    salut,
    cela revient donc à faire une sorte de "default"...
    Oui c'est ça.
    Dans ton message d'origine, si tu n'as ni TRACE1 ni TRACE2, tu retournes quoi ? (c'est le compilo qui le demande, pas moi)

  6. #6
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut
    c'est peut être une sorte de default, mais bon, les return au milieu d'un switch, j'essaye d'éviter au maximum.

    Après, c'est ton code, et tes règles de codage...

Discussions similaires

  1. supprimer message d'avertissement lien hypertexte
    Par Tierisa dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/09/2009, 17h47
  2. [MySQL] Supprimer des messages d'avertissements
    Par beegees dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/10/2008, 09h58
  3. Réponses: 1
    Dernier message: 30/04/2006, 19h14
  4. Supprimer 1 message d'avertissement
    Par snoopy69 dans le forum Access
    Réponses: 8
    Dernier message: 26/01/2006, 14h47
  5. Supprimer message d'avertissement windows
    Par Ps4 dans le forum Access
    Réponses: 16
    Dernier message: 07/10/2005, 09h48

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