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 :

[pre processor] fonctionnement d'une commande dans un header


Sujet :

C++

Vue hybride

fx007 [pre processor]... 19/06/2007, 11h29
rikau2 Bien sur que tu peux mettre... 19/06/2007, 11h39
fx007 Ok mais le truc c'est que... 19/06/2007, 11h44
rikau2 Ca depend de ton editeur... ... 19/06/2007, 11h49
rikau2 Par contre, preferes la... 19/06/2007, 11h50
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut [pre processor] fonctionnement d'une commande dans un header
    Salut !

    J'ai un header de ce style :

    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
     
    #if !defined( EXAMPLE_H )
    #define EXAMPLE_H
    #define _BOB
     
    class Example
    {
     
    protected: ...
    public:
    #ifndef _BOB
    coco();
    #endif
     
    private:
    #ifdef _BOB
    coco();
    #endif
    };
    #endif // !defined( EXAMPLE_H )
    Et mon problème c'est que les commande #ifndef et #ifdef ne mettent pas en gris les bout de code où j'ai appliqué une condition.
    --> Est-il possible de faire ce que j'ai fait ou pas? à savoir mettre une condition pour que la fonction coco() soit dans la partie private ou dans la partie public de la classe (selon la condition).

    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Bien sur que tu peux mettre des preconditions ou tu veux, a condition que la syntaxe du langage soit respectee.

    exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #ifdef __cplusplus
    extern "C"
    {
    #endif /* __cplusplus */
       typedef AiReturn _API_ISR_FUNC FDX_SERVER_CALLBACK_FUNC(   const AiChar *  /* ac_SrvName */,
                                                    const AiUInt32                /* ul_ChangeType */,
                                                    TY_RESOURCE_LIST_ELEMENT *    /* px_ResourceList */);
    #ifdef __cplusplus
    }
    #endif /* __cplusplus */

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut
    Ok mais le truc c'est que dans l'exemple que j'ai mis dans mon premier message, aucune des condition n'est grisée alors qu'il devrais y en avoir une qui doit être grisé non?

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Ca depend de ton editeur...

    Visual de temps en temps est un peu capricieux et ne grise pas la bonne partie, donc pas de souci pour ca tant que ca compile sans erreurs ni warnings et que ca fait ce que tu veux....

  5. #5
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Par contre, preferes la syntaxe suivante:

    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
    #if !defined( EXAMPLE_H )
    #define EXAMPLE_H
    #define _BOB
     
    class Example
    {
     
    protected: ...
    #ifndef _BOB
    public:
    coco();
    #endif
     
    #ifdef _BOB
    private:
    coco();
    #endif
    };
    #endif // !defined( EXAMPLE_H )

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Pardonnez ma curiosité, mais je ne parviens pas à entrevoir l'utilité de ce hack. A première vue, j'y vois un trés gros inconvénient, c'est que l'utilisateur de ta classe sera contraint de connaître ce hack et de définir des variables. Et l'utilisation de ta classe risque de s'avérer épineuse.

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

Discussions similaires

  1. Exécution d'une commande dans un Trigger
    Par Perr1 dans le forum Oracle
    Réponses: 6
    Dernier message: 08/04/2006, 00h14
  2. Ajouter une commande dans le menu contextuel
    Par Tenguryu dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/04/2006, 12h43
  3. une commande dans un backquote
    Par Krispy dans le forum Langage
    Réponses: 4
    Dernier message: 30/03/2006, 14h45
  4. Réponses: 7
    Dernier message: 05/10/2005, 18h06
  5. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 11h04

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