¿Hay un compilador o preprocesador independiente que toma archivos C++ y ejecuta un pase de expansión de plantilla, generando un nuevo código de C++ con instancias de plantillas expandidas?Herramienta de preprocesador de plantilla C++
Recuerdo una herramienta de este tipo a mediados de los 90 cuando las plantillas aún eran nuevas y experimentales, y el preprocesador era una forma de hacer plantillas de programación con compiladores sin compatibilidad con plantillas nativas.
Esto es mucho más complicado que un paso de macroprocesamiento, ya que probablemente requiera analizar y poner en simbología el código para comprender los contextos.
Mi esperanza es utilizar una herramienta de este tipo al escribir código OpenCL. OpenCL es C++, pero no admite plantillas. Espero poder escribir plantillas, incluso simples como con enteros o bool solo argumentos, y tener alguna herramienta de pre-analizar el archivo y buscar y encontrar el uso de las plantillas y expandir las invocaciones y darme un nuevo código de C++ que el compilador de OpenCL puede entender.
Incluso una herramienta muy limitada podría ser útil, no necesita admitir todos los caprichos de la plantilla, ni siquiera admite múltiples módulos o algo.
La alternativa: #define
macros en todas partes ... más feo, inseguro, menos eficiente y menos versátil.
lenguaje de OpenCL se basa en la sintaxis C99, no en C++ de acuerdo a la página que vinculó. –
AMD realiza una cierta extensión para openCL, podría desarrollar códigos de plantilla si apunta solo a los dispositivos AMD. Es un fastidio que no podamos usar la plantilla para desarrollar nuestros algoritmos. – StereoMatching