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 :

Afficher static constexpr en c++11


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2013
    Messages : 84
    Par défaut Afficher static constexpr en c++11
    Bonjour,

    Je suis face à un problème en C++11. Je ne trouve pas de réponse à ma question même si j’ai déjà vu des sujets qui en parlaient. Je pense que je ne comprends pas les explications.
    Voici mon problème avec le code suivant pour l’illustrer :
    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
    23
    24
    25
    26
    27
    28
    #include <string>
     
    namespace Logger
    {
    template< class ...Args >
    static void my_printf(const char *format, Args&& ...args) {
    	printf(format, args...);
    }
    } // namespace Logger
     
    #define MY_PRINTF(fmt, ...) printf(fmt"\n", ## __VA_ARGS__)
     
    class ClassA
    {
    	private:
    		static constexpr int myVar = 64;
    	public:
    		static void display() {
    			Logger::my_printf("myVar = %d", myVar);
    			MY_PRINTF("myVar = %d", myVar);
    		}
    }; // class ClassA
     
    int main()
    {
    	ClassA::display();
    	return EXIT_SUCCESS;
    }
    Pour le tester : Code Live

    J’ai donc une erreur lors de la création des liens mais pourquoi. Je fais donc appelle à vous et vos connaissances pour essayer de m’expliquer ce qu’il se passe.

    Merci d’avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 151
    Billets dans le blog
    4
    Par défaut
    En C++11 les variables membres static constexpr doivent être déclarées dans une unité de compilation.
    Il faut constexpr int ClassA::myVar; dans un cpp compilé.
    C'est réglé en C++17 uniquement.

    Ou utiliser un namespace et non une classe.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2013
    Messages : 84
    Par défaut
    Après test, il n'est pas possible de le faire avec une variable static const non plus, je me trompe ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 151
    Billets dans le blog
    4
    Par défaut
    une variable const a le même problème.
    Mais si tu as que des static dans ta classe, tu devrais juste créer un namespace et non une classe.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. Accès à un tableau static constexpr
    Par PilloBuenaGente dans le forum Langage
    Réponses: 9
    Dernier message: 26/10/2014, 11h08
  2. Afficher des valeurs dans un Static Text
    Par Dani_krav dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 15/06/2012, 13h12
  3. [Débutant] Afficher une liste avec 'static text'
    Par macErmite dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 22/01/2012, 19h08
  4. [Débutant] Afficher une valeur dans un objet Static Text
    Par bart31400 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 26/06/2007, 09h22
  5. Réponses: 5
    Dernier message: 27/04/2007, 15h06

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