Domanda

Esiste un compilatore o un preprocessore autonomo che accetta file C++ ed esegue un passaggio di espansione del modello, generando nuovo codice C++ con istanze di modello espanse?

Ricordo uno strumento del genere a metà degli anni '90, quando i modelli erano ancora nuovi e sperimentali e il preprocessore era un modo per programmare modelli con compilatori senza supporto nativo dei modelli.

Questo è molto più complicato di una fase di elaborazione macro poiché probabilmente richiederebbe l'analisi e la tokenizzazione del codice per comprendere i contesti.

La mia speranza è di utilizzare uno strumento del genere durante la scrittura del codice OpenCL. OpenCL è C++, ma non supporta i modelli.Spero di poter scrivere modelli, anche semplici come con argomenti solo interi o bool, e avere qualche strumento che pre-analizza il file, esamina e trova l'uso dei modelli ed espande le invocazioni e mi dà nuovo codice C++ che il compilatore OpenCL Potere capire.

Anche uno strumento molto limitato potrebbe essere utile, non è necessario che supporti ogni peculiarità del modello, né supporti più moduli o altro.

L'alternativa: #define macro ovunque..più brutto, pericoloso, meno efficiente e meno versatile.

È stato utile?

Soluzione

Comeau C++ può "compilare" C++ in C.Questo sembrerebbe essere vicino al tuo obiettivo, poiché OpenCL non supporta C++: è molto più vicino al C.

Altri suggerimenti

Non esiste uno strumento del genere: i modelli fanno parte del linguaggio, non un passaggio del preprocessore: vengono elaborati dal compilatore, proprio come gli altri codici.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top