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

Langage C++ Discussion :

Template typedef, gni :/


Sujet :

Langage C++

  1. #1
    Membre confirmé Avatar de Groove
    Inscrit en
    Décembre 2002
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 97
    Par défaut Template typedef, gni :/
    Bonjour,

    En C++ les typedef template ... c po possible. bon reste que dans certain cas ca serait bien util alors il y a t'il un moyen de faire un truc du genre:

    template <int N, typename T> class xvecN;
    template <int N> class fvecN;
    template <int N> class dvecN;
    template <int N> class hvecN;

    Les classes sont identiques au type interne pres (des float, des double, des half)

    Bref plutot que de devoir indiquer les types internes je voudrais leur donner des petits noms mais toutes les classes utilises derieres le meme code, celui de xvecN.

    Il y a t'il de faire un truc du genre?

    Merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651

  3. #3
    Membre confirmé Avatar de Groove
    Inscrit en
    Décembre 2002
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 97
    Par défaut
    merci mais c'est une solution qui ne convient pas dans ce cas ....

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    C'est la seule qui soit valable.

    Tu peux aussi utiliser l'héritage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template <int N> class fvecN : public xvecN<N, float> {};
    Mais là tu vas avoir des problèmes liés au fait que le destructeur de xvecN n'est certainement pas virtuel.

  5. #5
    Membre confirmé Avatar de Groove
    Inscrit en
    Décembre 2002
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 97
    Par défaut
    Oue j'avais pense a ca aussi mais il y a plein d'autres problemes, style duplication des constructeurs, reference a soit meme, etc...

    Bon bon je doutais avoir un solution mais merci quand meme

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    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
    template<int N, typename T>
    struct foo;
     
    template<int N>
    struct foo<float>
    {
        typedef fvecN<N> type;
    };
     
    template<int N>
    struct foo<double>
    {
        typedef dvecN<N> type;
    };
     
    template<int N>
    struct foo<half>
    {
        typedef hvecN<N> type;
    };
    et voilà

    Edit: apparemment j'ai mal compris.
    La solution de Laurent est quasi parfaite, le seul problème c'est les constructeurs. Problème résolu en C++09.

Discussions similaires

  1. Généricité : template / typedef
    Par PilloBuenaGente dans le forum Débuter
    Réponses: 7
    Dernier message: 17/06/2013, 20h59
  2. Les template typedefs existent ils ?
    Par SalutAVous dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2012, 22h55
  3. Réponses: 15
    Dernier message: 12/08/2012, 13h10
  4. Réponses: 5
    Dernier message: 04/11/2010, 11h01
  5. Réponses: 5
    Dernier message: 17/06/2005, 19h26

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