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

  FORUM HardWare.fr
  Programmation
  C++

  Une erreur avec des templates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Une erreur avec des templates

n°849014
cakeman
Posté le 13-09-2004 à 17:59:52  profilanswer
 

Bonjour,  
 
J'ai un problèe avec le code suivant à la compilation (pour info j'utilise dev-C++)
 

Code :
  1. #ifndef __GKFIFO_HPP__
  2. #define __GKFIFO_HPP__
  3. #ifdef __GCC__
  4. #define GKFIFOCLASS Gkfifo<T,FIFO_SIZE>
  5. #else
  6. #define GKFIFOCLASS Gkfifo
  7. #endif
  8. template <class T, int FIFO_SIZE>
  9. GKFIFOCLASS::Gkfifo(void)            //ligne 165  
  10. {
  11. init();
  12. }


 
J'obtient l'erreur suivante à la ligne 165:
 syntax error before `::' token  
 
J'avoue que j'ai du mal à comprendre. QQun aurait-il des idées ?

mood
Publicité
Posté le 13-09-2004 à 17:59:52  profilanswer
 

n°849034
Taz
bisounours-codeur
Posté le 13-09-2004 à 18:30:45  profilanswer
 

et elle est ou ta classe :o ?
 
 
et y a pas de ifdef GCC qui tienne .... et ton (void) il veut rien dire

n°849040
Lam's
Profil: bas.
Posté le 13-09-2004 à 18:39:05  profilanswer
 

Taz a écrit :

et elle est ou ta classe :o ?
 
 
et y a pas de ifdef GCC qui tienne .... et ton (void) il veut rien dire


 
J'aurais pas cru que ce soit possible avec Taz, mais (*snif*) :
 
+1
 

n°849056
Taz
bisounours-codeur
Posté le 13-09-2004 à 19:13:06  profilanswer
 

qu'est-ce que j'ai dit ?

n°849380
sircam
I Like Trains
Posté le 13-09-2004 à 23:14:24  profilanswer
 

Taz a écrit :

qu'est-ce que j'ai dit ?


Après relecture, je pense qu'il ne s'attendait pas à acquisser à un de tes posts.
 
M'enfin t'as rien dit de mal ni de contraire, hein.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°849397
Taz
bisounours-codeur
Posté le 13-09-2004 à 23:25:05  profilanswer
 

non, j'ai juste dit que c'est y a pas de spécifité à gcc, y a que des défaillances d'autres compilateurs. et que (void) n'a pas de sens

n°849481
sircam
I Like Trains
Posté le 13-09-2004 à 23:50:30  profilanswer
 

Et bon le gars il nous poste un morceau de code qui compile pas, puis il se casse. Doit être parti pisser pour un long, long moment.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°849759
cakeman
Posté le 14-09-2004 à 11:12:47  profilanswer
 

Je suis là mais bon laissez moi le temps de voir le truc.

n°849762
cakeman
Posté le 14-09-2004 à 11:13:49  profilanswer
 

et je n'ai pas voulu vous copier tout le code, la class est bien déclarée.

n°849766
cakeman
Posté le 14-09-2004 à 11:17:49  profilanswer
 

si vous voulez une bonne partie du code, le voici :

Code :
  1. #ifndef __GKFIFO_HPP__
  2. #define __GKFIFO_HPP__
  3. #ifdef __gcc__
  4. //#define GKFIFOCLASS Gkfifo<T,FIFO_SIZE>
  5. #else
  6. #define GKFIFOCLASS Gkfifo
  7. #endif
  8. // classe à transformer en template
  9. // pour se débarrasser du pramamètre taille (FIFO_SIZE)
  10. #include "gkfilter.hpp"
  11.  
  12. // template<> class Gkfilter<class T>;
  13. template <class T, int FIFO_SIZE> class Gkfifo
  14. {
  15. public:
  16. Gkfifo();
  17. void init(void);
  18. // supprimer l'ensemble des éléments pour lesquels le filtre répond oui
  19. void remove(class Gkfilter<T> & f)
  20.  {
  21. ...  // je vous épargne un bout de code
  22. template <class T, int FIFO_SIZE>
  23. GKFIFOCLASS::Gkfifo(void)
  24. {
  25. init();
  26. }


 
Le void, je pense que ce n'est pas ça qui bloque la compilation (en fait, j'en suis sur). Enfin c'est un source que l'on m'a donné (qui est censé se compiler) et il faut que je le reprenne donc c'est assez difficile pour moi de me mettre dedans.
 
sircam
ça fait du bien de temps en temps de se soulager un peu !


Message édité par cakeman le 14-09-2004 à 11:20:05
mood
Publicité
Posté le 14-09-2004 à 11:17:49  profilanswer
 

n°849784
Lam's
Profil: bas.
Posté le 14-09-2004 à 11:24:58  profilanswer
 

Ouais, bah:
 

Code :
  1. template <class T, int FIFO_SIZE> 
  2. Gkfifo<T, FIFO_SIZE>::Gkfifo()
  3. {
  4.      init();
  5. }


 
Ca compile pas ? (et enlève le #ifdef... )

n°849794
Taz
bisounours-codeur
Posté le 14-09-2004 à 11:28:09  profilanswer
 

déjà le machin pour gcc, tu devrais l'enlever
 
Gkfifo<T,FIFO_SIZE>::Gkfifo  est l'expression correcte
 
ensuite tes (void) ils ont la meme signidication que ()
 
quand à ton constructeur ... inline le ! défini le dans le corps de ta classe.
 
et passe int FIFO_SIZE en unsigned pour éviter des surprises

n°850077
cakeman
Posté le 14-09-2004 à 16:37:11  profilanswer
 

Maintenant j'ai d'autres problèmes mais celui là semble résolu. Merci pour votre aide et je reviendrai avec plaisir si j'ai d'autres problèmes ;)


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

  Une erreur avec des templates

 

Sujets relatifs
[PHP] Quel moteur de templates choisir ?[latex] erreur This NFSS system isn't set up properly
vbscript + dreamweaver - erreur de codeErreur header avec une affiliation de petites-annonces
(Novice) Erreur de lancement[Forum PHP] Erreur d'affichage de pages
Erreur 1046[VBA] --> Problème rapide ( erreur de syntaxe )
Erreur getimagesize[C++] IIDFromString erreur... [résolu]
Plus de sujets relatifs à : Une erreur avec des templates


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