Bonjour,
j'aimerais un avis sur le probleme suivant:
j'ai écris une petite bibliothéque d'algo geometriques ( splitting, clipping, bsptrees, somme de minkowski,...). Voulant conserver la possibilité d'utiliser des float ou des doubles ( voire pire plus tard ) pour anticiper les problemes de précision je l'ai 'templatisée' avec un type 'scalaire' ( puis Points, Vecteurs..); j' utilise la notion de 'Traits' pour me simplifier la vie et la vaste majorité des données et des algos manipulent des pointeurs ( sur Points,...).
Le probleme est que je me retrouve obligé de templatiser TOUTE la bibliotheque, y compris des algos qui ne traitent que des structures de données ( cad pas de valeurs numeriques), ce qui va recreer TOUT le code a chaque fois, et qui me semble débile.
La solution a laquelle je pense est de deriver mes points/vecteurs templatisés d'une classe virtuelle pure, dont j'utiliserais les pointeurs comme donnees membres de classes utilisatrices de points/vecteur, evitant ainsi d'avoir a templatiser ces dernieres. MAIS cela me rajoute une indirection.
1. cette solution est-elle valable?
2. Cette indirection supplementaire risque-t-elle de me penaliser serieusement en temps de calcul?
3. Autre solution?
Merci a ceux qui prendront le temps de me lire.
Partager