C ++ Template Präprozessor Werkzeug
-
16-09-2019 - |
Frage
Gibt es einen Compiler oder Standalone-Präprozessor die C ++ Dateien und läuft eine Vorlage Expansion Pass nimmt, Generierung neuen C ++ Code mit erweiterten Vorlage instantiations?
ich ein solches Werkzeug in der Mitte der 90er Jahre erinnern, als Vorlagen noch neu und experimentell waren, und der Präprozessor war ein Weg, Template-Programmierung mit Compilern ohne nativen Template Unterstützung zu tun.
Das ist viel komplizierter als ein Makro-Verarbeitungsschritt, da es wahrscheinlich den Code erfordert Analyse und Tokenerstellung würde die Kontexte zu verstehen.
Meine Hoffnung ist, ein solches Instrument zu verwenden, wenn OpenCL-Code zu schreiben. OpenCL ist C ++, aber nicht unterstützt Vorlagen. Ich hoffe, ich Vorlagen schreiben kann, auch einfache wie mit Integer- oder Bool nur Argumente und haben einige Tool die Datei vorab analysieren und durchlaufen und die Verwendung der Vorlagen finden und die Anrufungen erweitern und gib mir neue C ++ Code, die OpenCL-Compiler können verstehen.
Auch ein sehr begrenztes Werkzeug könnte nützlich sein, es muss nicht jede Vorlage Marotte unterstützen, noch mehr Module oder etwas unterstützen.
Die Alternative:. #define
Makros überall .. hässliche, unsicher, weniger effizient und weniger vielseitig
Lösung
Comeau C ++ können „kompilieren“ C ++ auf C schließen Dies scheint an Ihr Ziel zu sein, wie OpenCL nicht C ++ unterstützen -. es ist viel näher an C
Andere Tipps
Es gibt kein solches Werkzeug - Vorlagen Teil der Sprache sind, nicht einige Pre-Prozessor übergeben -. Sie vom Compiler verarbeitet werden, ebenso wie andere Code