pimpl et typedefs

pimpl et typedefs - C++ - Programmation

Marsh Posté le 07-03-2008 à 10:33:49    

Bonjour,
 
Je suis tombe sur ce problème hier.
 
J ai une bibliotheque pleine de templates et de traits (CGAL) dont j aimerais utiliser les services, et les cacher dans une dll.
Le jeu est donc devenu "garder les headers cgal loin de mes headers publics". Il faut semble-t-il faire du Pimpl, qui consiste si j ai bien compris a forward declarer la partie a cacher sous la forme d une classe.
 
j ai donc :
A.h

Code :
  1. class Poly2D_cgal;
  2. class A
  3. {
  4. public :
  5. ...
  6. private :
  7. Poly2D_cgal *mPoly2D;
  8. };


 
Puis :
A.cpp

Code :
  1. #include <A.h>
  2. #include <Poly2D_cgal.h>


 
 
Le probleme est que Poly2D_cgal n est pas vraiment une classe mais un typedef
Poly2D_cgal.h

Code :
  1. class Poly2D_cgal_traits
  2. {
  3. ...
  4. };
  5. typedef CGAL::Polygon_2<Poly2D_cgal_traits> Poly2D_cgal;


 
et tout ca ne compile pas. A la rigueur au lieu de faire un typedef je peux heriter, mais ca ne m enchante pas de reecrire des constructeurs
 
Comment puis-je tourner ce bazar pour faire ce qu il faut ?
 
Merci

Reply

Marsh Posté le 07-03-2008 à 10:33:49   

Reply

Marsh Posté le 07-03-2008 à 10:40:41    

Et d'inclure Poly2D_cgal.h avant A.h, ça n'irait pas mieux :??:
 
nb : je ne pratique pas c++ courament, donc je peux dire des conneries :o
 
Edit : ben ouais, je disais des conneries ! Désolé ! [:dehors2]


Message édité par kao98 le 07-03-2008 à 10:41:37

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 07-03-2008 à 10:57:22    

ah ah .. En effet avant de poster j ai applique la bonne vieille méthode de "ne cherchons pas a reflechir et permutons tout ce qui peut l etre" ,
puis je suis passe a "reflechissons" pendant quelques secondes avant de switcher finalement sur "faisons reflechir les autres"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed