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 de template


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Inscrit en
    Novembre 2006
    Messages
    1 073
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par d�faut template de template
    Bonjour
    Je me suis pos� la question sur la d�claration de template de template

    J'ai essay� cela:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    template<template<typename Y> typename X>
    struct Meta_class
    {
    	//typedef template<T> type;
     
    };
    Mais cela me renvoie une erreur: d�claration de param�tre inconnus.


    Ensuite j'ai essay� ca:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    template<template<typename Y> class X>
    struct Meta_class
    {
    	//typedef template<T> type;
     
    };
    et ca compile. Je voudrais savoir quelle est la diff�rence entre les deux?
    Surtout que je pensais que typename et class �taient identiques dans un template.
    Merci

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Heu, pourquoi obliger un param�tre d'un template � �tre un template ?

    C'est tr�s "border line" comme situation, non ?

  3. #3
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par d�faut
    Non, et �a a plus d'une utilit�.


    template<template<typename> class X>


    Est la bonne syntaxe car c'est ce que tu veux (ie une classe template).


    template<template<typename> typename X>

    n'a aucun sens ici.

    Pas la peine de nommer le param�tre template template (Y chez toi), il ne sera jamais utilis�.

  4. #4
    Membre �prouv�
    Inscrit en
    Novembre 2006
    Messages
    1 073
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par d�faut
    Non, et �a a plus d'une utilit�.
    tu peux m'en donner une?

  5. #5
    Membre tr�s actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par d�faut
    si tu veux avoir une classe template qui prends une classe template

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    template < template<typename> class X>
    class Foo
    {
     
    };
     
    //main
    Foo< vector<string> > f;

  6. #6
    Membre Expert

    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Ao�t 2004
    Messages
    1 391
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Doubs (Franche Comt�)

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

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 391
    Par d�faut
    Utilit� : Design � base de classes de politique (cf Loki), et surment pas mal d'outils de m�ta-prog plus avanc� (cf MPL, pas assez d'exp�rience sur MPL pour donner un exemple plus concret*, Goten devrait pouvoir le faire)

    * Cependant je dirais bien pour faire un algo qui cr�� un nouveau conteneur de type en appliquant une m�ta-fonction sur tout les �l�ments d'un autre conteneur. Ca serait donc une m�ta-fonction qui prend en param�tre un conteneur de type et une autre m�ta-fonction.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    template< template <class> class F, class List> struct Algo;
    template< template <class> class F, class OldHead, class OldTail>
    struct Algo<F, TypeList<OldHead, OldTail> >
    {
        typedef typename F<OldHead>::Result NewHead;
        typedef typename Algo<F, OldTail>::Result NewTail;
        typedef TypeList<NewHead, NewTail> Result;
    };
     
    template< template<class> class F>
    struct<F, NullType>
    { typedef NullType Result; }
    Quelque chose de ce gout l� (aucune garantie que ca compile )

  7. #7
    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
    C'est marrant la question originale, �a montre que dans certains contextes tu as class/typename et d'en d'autres tu as class/struct.

    class est donc un mot-cl� magique qui veut dire plusieurs choses.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. H�ritage classe template->classe template
    Par zabibof dans le forum Langage
    R�ponses: 5
    Dernier message: 11/08/2007, 11h05
  2. [Avis] Mon moteur de templates (cache, templates etc.)
    Par Spartan03 dans le forum Contribuez / T�l�chargez Sources et Outils
    R�ponses: 6
    Dernier message: 05/05/2007, 14h40
  3. Template de template
    Par batbaille dans le forum Langage
    R�ponses: 3
    Dernier message: 07/12/2005, 09h42
  4. R�ponses: 13
    Dernier message: 03/10/2005, 18h06
  5. [Template] methode template d'une classe pas template
    Par bigquick dans le forum Langage
    R�ponses: 8
    Dernier message: 25/03/2005, 15h09

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