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 :

C++0x et symboles préprocesseur


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 C++0x et symboles préprocesseur
    Salut,

    Je me demandais s'il y avait déjà un symabol préprocesseur standard déterminé afin de savoir si la compilation se fait selon la norme c++0x ou non...

    Je m'explique:

    Il est possible, de manière générale, d'utiliser la directive préprocesseur
    afin de déterminer si nous sommes occupés à compiler du code avec un compilateur C++

    Sous Gcc (du moins, sur les versions qui fournissent le support expérimental de la prochaine norme), il est possible d'utiliser la directive préprocesseur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #ifdef  __GXX_EXPERIMENTAL_CXX0X__
    afin de savoir si l'on a demander d'activer ce support ou non.

    Mais si le premier symbole est trop "générique" dans le sens où il ne donne aucune information sur la norme suivie, le second est, quant à lui, trop particulier, dans le sens où... il ne s'applique qu'à un(e famille de) compilateur(s)...

    Or, ceux qui se sont déjà un peu intéressé à la nouvelle norme savent qu'elle apporte un certain nombre de choses nouvelles intéressantes... qui ne seront, purement et simplement pas reconnues si la norme suivie par le compilateur est trop ancienne.

    Je me demande donc si la norme avait pris ce point qui peut sembler anodin en compte en prévoyant un symbole particulier pour indiquer que c++0x est suivi lors de la compilation

    Merci d'avance à ceux qui me répondront
    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

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    A ce que j'ai compris, la variable __cplusplus devrait prendre une valeur spécifique pour le C++x, valeur non encore fixée (probablement liée à la date de sortie de la norme, ou à son numéro ISO officiel).

    The name _ _ cplusplus is defined to the value [tbd] when compiling a C++ translation unit.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    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
    Donc, cela signifie que, actuellement, je peux détrerminer si je travaille en C++0x mais que je ne pourrai le faire de manière portable qu'une fois la norme finalisée...

    Ben, on va donc faire avec

    Merci
    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

  4. #4
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    D'après Stroustrup tu peux quand même déjà anticiper :

    In C++0x the macro __cplusplus will be set to a value that differs from (is greater than) the current 199711

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    On vit avec la même norme depuis novembre 1997 ?

    Au fait, est-il prévu d'ajouter les possibilités de la norme "C99" du C ?

  6. #6
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Il me semble que 2003 corresponds au TR1, pas exactement une nouvelle version du language, juste une correction et extension de bibliotheques.

  7. #7
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Citation Envoyé par camboui Voir le message
    Au fait, est-il prévu d'ajouter les possibilités de la norme "C99" du C ?
    Oui, et GCC en implémente déjà la plupart : http://gcc.gnu.org/projects/cxx0x.html
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

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

Discussions similaires

  1. Code ASCII du symbole Euro
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/04/2007, 01h27
  2. [Flash Mx 2004] - Supprimer un symbole
    Par alucard dans le forum Flash
    Réponses: 4
    Dernier message: 05/01/2004, 16h03
  3. Organigramme d'un algorithme, convention de symboles
    Par rstephane dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 12/06/2003, 17h47
  4. [Sybase] Définition des symboles
    Par SoaB dans le forum Sybase
    Réponses: 5
    Dernier message: 19/03/2003, 23h06
  5. symbole ##
    Par JEG dans le forum C
    Réponses: 2
    Dernier message: 23/01/2003, 19h15

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