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 :

Spécialisation methode classe template


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Spécialisation methode classe template
    Bonjour,

    J'ai un petit soucis au niveaux des template.

    J'ai une classe (disons Titi) qui a une méthode template read.
    De sorte que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Titi{
     
    template<typename T>
    T read()
    {
     
    }
     
    }
    Et j'aimerais pouvoir le spécialiser de sorte d'avoir :
    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
     
    class Titi{
     
    template<typename T>
    T read()
    {
     
    }
     
    template<>
    int read<int>()
    {
     
    }
     
     
    }
    Le problème c'est que ca compile pas ce genre de code, il a pas l'air d'aimer la spécialisation de methode :s

    A l'utilisation, l'utilisateur sera obliger de faire
    Titi t;
    t.read<int>();
    (Pas gênant en ce qui me concerne de forcer l'utilisateur a utiliser cette synthaxe)

    Mais je ne vois pas d'autres façon de faire.
    Si vous avez des idées (On touche pas au prototype de la methode, donc pas de dummy paramètres qui permettent de specifier le type pour faire de la surcharge )
    Je suis preneur.

  2. #2
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Bonjour.

    On ne peut pas spécialiser une méthode template comme cela: il faut le faire à l'exterieur de la classe.

    cette question à déjà été posée de nombreuses fois.

    Regarde dans la faq pour une solution de contournement.


    Edit: la première fois, j'avais lu la question un peut vite.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/10/2013, 10h46
  2. Réponses: 4
    Dernier message: 15/10/2008, 09h33
  3. Spécialisation de méthode membre de classe template
    Par Zbouirf dans le forum Langage
    Réponses: 3
    Dernier message: 23/07/2008, 02h30
  4. Spécialisation de classe Template
    Par mister3957 dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2008, 15h35
  5. 1 classe template - differentes methodes
    Par jmeuf dans le forum Langage
    Réponses: 9
    Dernier message: 30/03/2007, 21h33

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