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 :

Afficher le type du template ?


Sujet :

Langage C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Par défaut Afficher le type du template ?
    Bonsoir je debut avec les templates soyez indulgent :$

    J'ai fait une classe génerique avec template et je voudrais pour mes besoin appeler une methode qui m'affiche le type de T.

    un bout de code sera plus explicite ^^

    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
     
    template <class T>
    class mytemplate
    {
    public:
    	void	GetType();
    ...
    private:
    	T _value;
    };
     
    template <class T>
    void mytemplate<T>::GetType()
    {
    	cout << "ici type int par exemple...";
    }
     
    int main()
    {
    	mytemplate<int> tt;
    	tt.GetType();
    }

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    A partir de l'opérateur typeid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    template <class T> 
    void mytemplate<T>::GetType() 
    { 
       cout << typeid(T).name() ;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Par défaut
    Grand merci

    Je sais pas pourquoi je cherchais plus compliqué lol

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Par défaut
    bon j'en profite pour une autre question du même ordre

    Imaginons que je connaisse tout les types different qui vont etre utiliser pour ma classe.

    par exemple <int> ou <string>

    comment puis-je initialiser a 0 pour le int et a "" pour le string ?

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    (De tête, non testé ; cf une autre discussion très très récente au sujet des problèmes liés à typeid().name())
    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
    template <typename T>
    struct type_traits {};
     
    template <> struct type_traits<int>
    {
        enum {someValue = 0};
        static const char* name() { return "int"; }
    };
     
    template <typename E, typename A>
    struct type_traits<std::basic_string<E,A> >
    {
        enum {someValue = 1};
        static const char* name() { return "string"; }
    };
    Pour ton initialisation, appelle le constructeur par défaut qui pour les scalaires initialise à 0 -- ou équivalent
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. [Joomla!] Type de template ?
    Par iDaaX dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 27/02/2007, 18h57
  2. afficher le type d'une variable
    Par Dirty Harry dans le forum Langage
    Réponses: 1
    Dernier message: 24/01/2007, 02h18
  3. limit de type de template
    Par elraton dans le forum Langage
    Réponses: 1
    Dernier message: 09/01/2007, 20h55
  4. Afficher tout type d'image (gif ,png, jpg...)
    Par jfb53 dans le forum C++Builder
    Réponses: 22
    Dernier message: 20/07/2005, 14h52
  5. [VB.NET] Afficher un type Image
    Par cicko dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/02/2004, 10h58

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