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 :

Instanciation static template


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut Instanciation static template
    Bonjour

    Le code suivant produit le message de compilation : error: too few template-parameter-lists

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    template<class T>
    struct box
    {
      static T data;
    };
     
    int box<int>::data = 0;
     
    int main()
    {
      return 0;
    }
    Faut-il instancier une variable static template différemment d'une variable non template ? ou n'a-t-on simplement pas le droit de faire ca ?

    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    Citation Envoyé par etienne.bezout Voir le message
    Bonjour

    Le code suivant produit le message de compilation : error: too few template-parameter-lists

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    template<class T>
    struct box
    {
      static T data;
    };
     
    int box<int>::data = 0;
     
    int main()
    {
      return 0;
    }
    Faut-il instancier une variable static template différemment d'une variable non template ? ou n'a-t-on simplement pas le droit de faire ca ?

    Merci pour votre aide.

    Je viens de trouver alors je me répond
    Solution :
    template<> int box<int>::data = 0;

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par etienne.bezout Voir le message
    Bonjour

    Le code suivant produit le message de compilation : error: too few template-parameter-lists

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    template<class T>
    struct box
    {
      static T data;
    };
     
    int box<int>::data = 0;
     
    int main()
    {
      return 0;
    }
    Faut-il instancier une variable static template différemment d'une variable non template ? ou n'a-t-on simplement pas le droit de faire ca ?

    Merci pour votre aide.
    Version spécialisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    template <> int box<int>::data = 0;
    ou version non spécialisée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    template <class T> T box<T>::data = T();
    A noter que les données statiques (non spécialisées) dans les classes templates peuvent être définies dans le header ou est défini le template - contrairement aux données statiques de classes non template.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    Merci,
    La version non-spécialisée me convient encore mieux !

    ++

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par etienne.bezout Voir le message
    Merci,
    La version non-spécialisée me convient encore mieux !

    ++
    Il faut juste faire attention a un point : d'après mon code, T doit avoir un constructeur par défaut. C'est la seule limitation.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/06/2012, 16h57
  2. Réponses: 2
    Dernier message: 14/04/2011, 14h29
  3. instanciation des templates
    Par guillaume07 dans le forum C++
    Réponses: 15
    Dernier message: 05/04/2011, 09h41
  4. Instanciation tableau templaté
    Par matyu dans le forum C++
    Réponses: 5
    Dernier message: 29/03/2011, 20h45
  5. Instanciation de templates
    Par vandamme dans le forum C++
    Réponses: 9
    Dernier message: 23/05/2008, 12h17

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