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 averti
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    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 Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    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.

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