Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1472 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Spécification de templates imbriquées

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Spécification de templates imbriquées

n°1181345
bjone
Insert booze to continue
Posté le 22-08-2005 à 16:03:29  profilanswer
 

j'aimerai faire un truc comme ça:
 

Code :
  1. template <size_t a=10> class A1 {};
  2. template <size_t a=10> class A2 {};
  3. template <class G, typename T> class B1{};
  4. template <class G, typename T> class B2{};
  5. template <typename T, class A=A1, class B=B1, class P=B<A,T> > class Z : public P {};


 
et donc pouvoir faire des instanciations stÿle:
Z<int> a;
Z<int,A2> b;
Z<int,A2,B2> c;
 
le prob c'est qu'il me sors ça:
 
error C3203: 'A1' : modèle de classe non valide comme argument de modèle pour le paramètre de modèle 'A', type réel attendu
error C3203: 'B1' : modèle de classe non valide comme argument de modèle pour le paramètre de modèle 'B', type réel attendu
error C2947: '>' attendu pour terminer template-argument-list, '<' trouvé
error C2516: 'P' : classe de base non conforme
error C2143: erreur de syntaxe : absence de ';' avant '>'
error C2143: erreur de syntaxe : absence de ';' avant '>'
 
qu'elle est l'achtuche qu'il me manque ? (y'a t'il quelqu'un dans la salle qui ayes une achtuche assez longue ?)
 
pour l'instant je fais ça pour que ça marche:

Code :
  1. template <typename T, class P = B1<A1<>,T> >class Z : public P {};


 
mais du coup c'est moins zoli à l'instanciation....


Message édité par bjone le 22-08-2005 à 16:40:54
mood
Publicité
Posté le 22-08-2005 à 16:03:29  profilanswer
 

n°1181365
++fab
victime du syndrome IH
Posté le 22-08-2005 à 16:30:33  profilanswer
 

ta classe B1, notamment, c'est une classe template (avec 2 arguments template), ce qui donne (vite fait) ceci :
 

Code :
  1. #include <cstddef>
  2. template <size_t a=10> class A1 {};
  3. template <size_t a=10> class A2 {};
  4. template <class G, typename T> class B1{};
  5. template <class G, typename T> class B2{};
  6.    
  7. template <typename T, class A=A1<2>,
  8. template <class, class> class B=B1,
  9.   class P = B<A,T> > class Z : public P {};
  10. int main()
  11. {
  12.     Z<int> a;
  13.     Z<int, A2<> > b;
  14.     Z<int, A2<>, B2> c;
  15. }


Message édité par ++fab le 22-08-2005 à 16:36:28
n°1181372
bjone
Insert booze to continue
Posté le 22-08-2005 à 16:40:22  profilanswer
 

haha exact, j'avais pas du tout pensé a cette évidence, honte et flagellation sur moi :cry:
 
bon au moins ce sera toujours utile si quelqu'un retombe sur la même galère. (j'ai donné un nom + parlant pour le topic)


Message édité par bjone le 22-08-2005 à 16:41:18

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Spécification de templates imbriquées

 

Sujets relatifs
Centrer sous IE des div imbriquéestemplates et héritage
CMS/templates - Comment utiliser une BD[C++]Héritage de templates, g++ aime pas :(
vo mieux voir le dernier msg de ce topic pour comprendre le 1er ??[Access 2003] Spécification d'importation [RESOLU]
[Débutant]Requetes imbriquées[CSS] hauteur automatique de <div> imbriquées [resolu]
Génération dynamique de documents paramétrés (templates)spécification des droits lors de la création d'un fichier
Plus de sujets relatifs à : Spécification de templates imbriquées


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR