Ho un codice di simulazione in cui voglio eseguire alcune configurazioni in fase di compilazione: ad esempio, ho bisogno di definire la dimensione, il tipo di dati e una classe contenente le operazioni di basso livello (tempo di compilazione per inlining).Come memorizzare i parametri del modello in qualcosa di simile a una struct?
Qualcosa di simile:
template <int DIMENSION, class DATATYPE, class OPERATIONS>
class Simulation{ ... }
template <int DIMENSION, class DATATYPE, class OPERATIONS>
class SimulationNode{ ... }
template <int DIMENSION, class DATATYPE, class OPERATIONS>
class SimulationDataBuffer{ ... }
primo luogo, è estremamente fastidioso di scrivere l'intero set di parametri per ogni classe. In secondo luogo, anche peggio, potrebbe essere necessario introdurre un parametro aggiuntivo e dovrei modificare tutte le classi.
C'è qualcosa come una struttura per i parametri del modello?
Qualcosa di simile
struct {
DIMENSION = 3;
DATATYPE = int;
OPERATIONS = SimpleOps;
} CONFIG;
template <class CONFIG>
class Simulation{ ... }
template <class CONFIG>
class SimulationNode{ ... }
template <class CONFIG>
class SimulationDataBuffer{ ... }