ciao.
Sto lavorando su un modello ad oggetti aperto per l'architettura : il BIM.
L'ifc è un formato xml basato su questo modello ad oggetti.
ora dopo aver trasformato l'xsd del bim in classi c++ con l'ausilio di code syntetys (un xds.exe open source per intenderci)e deserializzato correttamente il documento xml passo all importazione nel mio applicativo.

A questo punto vorrei costruirmi le mie funzioni per lavorare con il modello ad oggetti del beam.
ho ad esempio una Ifcpolyline che è una sequenza di ifcPoints.
la ifcpolyline puo essere 2d o 3d e vorrei costruirmi un template che ruoti , scali ed estruda questi punti sia per il 2d che per il 3d.
pensavo di passare un intero che stabilisce il numero di dimensioni , ma non riesco a trovare una buona soluzione per realizzare un function object compatibile per i due casi senza specializzare il template, altrimenti non ha senso.

mi chiedo poi se non sia piu corretto utilizzare i template per fare operazioni sulle classi gia fatte del bim , senza "andare a sporcarle" con la mia logica dell importatore.
per intenderci una classe wall e tutte le classi del bim che sono importabili nel mio applicativo sono classi strutturali che derivano da ifcStructural e si comportano circa allo stesso modo , non sarebbe utile usare in questo caso i template?

le classi base che devo importare sono 5 ma vorrei imparare a specializzare il meno possibile.

E questa discussione perchè?

Perchè mi sono accorto leggendo template metaprogramming che il motore xml che uso : xerces e il suo xsd di codesyntetis sono strutturate proprio come spiega il libro , con nested type ,sequenze , tipi ecc... tipici dei template.

grazie.