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

Langage C++ Discussion :

Instruction compilateur define pour permettre "::"


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut Instruction compilateur define pour permettre "::"
    Bonjour!

    Je viens de tomber sur un cas dans mon code pas très grave mais que j'aimerai quand même réussir à résoudre.
    J'utilise un très grand nombre de fois une instruction plutôt longue au cours du projet du coup j'ai essayé de la mettre en define:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define irr::video::EDT_DIRECT3D9 DIRECTX9
    Et évidemment le soucis qui en découle est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Missing whitespace after the macro name
    Ce qui empêche le reste du programme de fonctionner. Cela est dû aux "::" présents dans le define qui sont interdits.
    Ma question est: Est-il possible d'outrepasser cette règle d'une quelquonque manière? J'ai cru voir sur un autre forum qu'un flag de compilation pouvait éviter ce problème mais je n'ai pas trouvé lequel, si jamais il existe réellement.
    Sinon je dév sous l'IDE de Qt.
    Je vous remercie d'avance pour l'aide que vous pourriez m'apporter!

  2. #2
    screetch
    Invité(e)
    Par défaut
    de 1, c'est pas forcément une bonne idée de défnir une macro du nom de DIRECTX9, ca pourrait poser des problèmes a ceux qui ont une structure ou un truc comme ca avec ce nom
    de 2, une macro c'est #define MACRO valuer avec des :: si tu veux, des virgules et mêmes des espaces, pas le contraire

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut
    Ah oui...............................
    Je suis resté trop longtemps sans faire de c++ :/
    Merci pour la réponse rapide ^^
    Et ok, je vais remplacer DIRECTX9 par un autre nom genre DX9 ou DR9 histoire d'éviter les problèmes.
    Merci encore.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Alias de namespace si ton clavier s'use trop vite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    namespace IRV = irr::video;
    Puis :

    Au pire une référence vers ta variable:
    Code C++0x : Sélectionner tout - Visualiser dans une fenêtre à part
    static [const] auto &DIRECTX9 = irr::video::EDT_DIRECT3D9;
    (#define, c'est mal)

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

Discussions similaires

  1. Synthaxe pour expression comprenant quote avec commande like
    Par loopy4321 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/07/2004, 12h21

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