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 :

template<class T> et typedef indépendant de T


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2012
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 15
    Points : 12
    Points
    12
    Par défaut template<class T> et typedef indépendant de T
    Bonjour,

    j'ai déjà développer sous visual sans soucis, mais ici à la maison pour un projet perso je suis passée à Code::Blocks, et là je n'arrive pas à compiler ma class template

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    #ifndef __UTL_List_INTERFACE__
    #define __UTL_List_INTERFACE__
     
    #include <iostream>
    #include <stdlib.h>
    using namespace std;
     
    template <typename T>
    class UTL_List
    {
    public:
     
        typedef unsigned int count_type;
        typedef unsigned int capacity_type;
     
        UTL_List(capacity_type capacityStep = 1);
        virtual ~UTL_List();
     
        T* get(count_type index) const;
        count_type append(T* elem);
     
    protected:
     
    private:
     
        T* _elems;
        count_type _count;
        capacity_type _capacity;
        capacity_type _capacity_step;
     
    };
     
    #endif // __UTL_List_INTERFACE__
    Mais dans le fichier CPP au moment de déclarer ma fonction append, mon typedef est mal géré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    template <class T>
    UTL_List::count_type UTL_List<T>::append(T* elem)
    ou
    UTL_List<T>::count_type UTL_List<T>::append(T* elem)
    ou
    UTL_List<class T>::count_type UTL_List<T>::append(T* elem)
    {
    ...
    }
    Aucune version ne compile. Comment faire un typedef indépendant de T ?
    MERCI

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    On ne peut pas définir une classe template dans un CPP :
    http://cpp.developpez.com/faq/cpp/?p...VERS_templates

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Soit tu le veux vraiment indépendant, et tu le déclare en dehors de toute classe paramétrée par T (par exemple dans une classe de base qui ne servirait qu'à ça.

    Soit tu t'en moques et tu veux juste résoudre ton problème de compilation, et tu mets typename (visual C++ est très laxiste sur la présence de typename, et compile plein de code qu'il ne devrait pas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typename UTL_List<T>::count_type UTL_List<T>::append(T* elem)
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. "Template" de classe métier
    Par gbraux dans le forum Design Patterns
    Réponses: 3
    Dernier message: 20/11/2007, 10h37
  2. [Template] Problème Classe Template
    Par gimpycpu dans le forum Langage
    Réponses: 7
    Dernier message: 23/05/2007, 05h10
  3. Méthode template dans classe non template ?
    Par shenron666 dans le forum Langage
    Réponses: 12
    Dernier message: 04/09/2006, 17h50
  4. Utilisation de templates et classe en PHP?
    Par wkd dans le forum Langage
    Réponses: 1
    Dernier message: 01/09/2006, 15h36
  5. Template et classe "amie" ?
    Par tintin72 dans le forum Langage
    Réponses: 21
    Dernier message: 11/07/2006, 22h50

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