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 :

map<flag8,x>, error: invalid suffix "b00000010" on integer constant


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Par défaut map<flag8,x>, error: invalid suffix "b00000010" on integer constant
    bonjour,

    J'ai un problème de compilation. Sur ma machine mon code compile correctement, par contre sur une autre machine j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    partition.hpp:60:13: error: invalid suffix "b00000010" on integer constant
    la ligne de code correspondante est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    neighbors[N ].id = pos2hash(hash2pos(id) + Int2( 0,  1));
    avec les définitions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef unsigned char  flag8 ;
    #define N  0b00000010 // 0x02
    std::map<flag8, Neighbor> neighbors ;
    +uelqu'un saurait-il d'où pourrait venir l'erreur ?

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

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Salut,

    Je n'ai jamais déclarer un nombre binaire (toujours en hexa), mais pourquoi fais-tu ça ?

    Une déclaration commençant par '0' est de l'octale (0-7), il me semble, donc 'b' n'est pas de l'octale.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Par défaut
    bon ben visiblement l'autre machine ne connait pas l'écriture 0b ... étrange quand même

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

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Citation Envoyé par Gébix Voir le message
    bon ben visiblement l'autre machine ne connait pas l'écriture 0b
    Moi non plus
    Tu l'as trouvée où ? C'est peut-être lié au compilo.

  5. #5
    Membre éprouvé
    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
    Par défaut
    les 'binary litterals' ne sont pas supportés par les standards C et C++, il n'y a que les hexadecimal (0x***) et octal (0***)

    une alternative dans boost : la macro BOOST_BINARY

    il y avait une proposition dans ce sens au C++0x (Extensible Literals : n2378)
    mais je ne sais pas ce que cela a donné

    Cdt

  6. #6
    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,

    Citation Envoyé par Gébix Voir le message
    bon ben visiblement l'autre machine ne connait pas l'écriture 0b ... étrange quand même
    C'est pas dans le langage C ni C++. GCC le supporte en extension. Si tu ne peux changer le code, il faut compiler avec une option activant les extensions de langages. Quel est ton compilateur ? Quels sont tes options de compilations ?

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

Discussions similaires

  1. error:invalid use of undefined type
    Par assif dans le forum C++
    Réponses: 2
    Dernier message: 25/10/2006, 21h11
  2. [VB6] Compile error: Invalide use of New Keyword
    Par ironik dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 16/05/2006, 12h40
  3. error: invalid conversion from `const wxChar*' to `CHAR*'
    Par barbarello dans le forum wxWidgets
    Réponses: 16
    Dernier message: 31/01/2006, 11h28
  4. [MySQL]DBX error : invalid translation
    Par billoum dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/01/2006, 20h55
  5. Réponses: 6
    Dernier message: 21/10/2005, 18h59

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