Template, namespace, autre ? - C++ - Programmation
Marsh Posté le 11-02-2007 à 15:47:07
Vite fait à l'arrache :
Code :
|
Un simple parametre template template suffit
Marsh Posté le 11-02-2007 à 16:33:59
Salut et merci.
Voila ce que j'ai fait
Code :
|
Code :
|
Et, j'ai une erreur de compil, classique avec les templates :
Code :
|
Marsh Posté le 11-02-2007 à 19:18:15
Citation : |
Bah l'erreur est clair, il lui manque un parametre template non trivial car le compilateur
ne peut déduire U et T de tes paramétres vu la gueule de ton prototype. La solution :
Code :
|
Ca devrait marcher ça.
Si tu veut un truc completement automatique, va falloir encapsuler ça dans une structure supplémentaire.
Marsh Posté le 11-02-2007 à 20:15:14
Merci de ton ton delicieusement agreable et assez peu donneur de lecon. n passant, j'avais fait la correction dans mon code, mais, certes, pas dans le post. En revanche, ca ne marche toujours pas :
Code :
|
Marsh Posté le 11-02-2007 à 21:09:56
Ironie, blague, smiley tout ça
Ensuite, soit y a une erreur dans l'ordre ou la spec de tes paramètres de ton appel de fonction.
Soit, comme je le redoute, tu utilise Visual C++ Express ou 20XX, et là je pense que toutes
tentatives d'utiliser des parametres template templates est vouées à l'echec :|
Marsh Posté le 11-02-2007 à 21:30:38
ReplyMarsh Posté le 11-02-2007 à 21:41:51
donc, je confirmerais ça plus tard, mais je pense que c'ets mort
Marsh Posté le 11-02-2007 à 23:42:51
Pas sur que ce soit le problème, mais bon :
template <class T , template <class> class U>
void Transform( const typename U<typename T>::Point_2 &cgal , TPoint2D <typename T> &matis );
Marsh Posté le 12-02-2007 à 08:58:35
++fab a écrit : Pas sur que ce soit le problème, mais bon : |
Ah j'avais pas vu effectivement ...
Marsh Posté le 11-02-2007 à 12:38:35
Bonjour a tous,
Je souhaite utiliser la librairie CGAL pour quelques algorithmes geometriques. Or, CGAL utilise ses propres objets geometriques de base (points, segments, ...) ce qui est tout ce qu'il y a de plus normal. Ces objets sont tous des templates.
Par ailleurs, la ou je bosse, nous avons notre propre librairie qui a aussi ses objets geometriques qui sont des templates simples. Aussi, je, voudrais ecrire deux namespaces qui permettraient de faire les transformations d'objets dans les deux sens (cgal2matis et matis2cgal).
Je ne sais pas comment m'y prendre, vu la strucutre des templates de deux cotes. Je m'explique. Par exemple, sous CGAL pour declarer un point 2D, on fait comme ca :
On declare donc l'espace (Cartesian) dans lequel on travaille et son type (double).
Dans ma lib, ca se passe comme ca :
Dans CGAL, l'espace peut etre Cartesian, mais aussi Simple_cartesian, Homogeneous ... Ou, encore plus complique Exact_predicates_exact_constructions_kernel ... Au final, je ne sais pas du tout comment faire ce que j'ai decrit au debut. Cela vient du fait que dans CGAL on a des templates dans des templates.
Un coup de main serait le bienvenu ...
D'avance merci
---------------
http://otblog.free.fr