Question

Y at-il un préprocesseur du compilateur ou autonome qui prend les fichiers C ++ et exécute une passe d'extension de modèle, générer un nouveau code C ++ avec instanciation de modèle élargi?

Je me souviens d'un tel outil au milieu des années 90 lorsque les modèles étaient encore nouvelles et expérimentales, et le préprocesseur était un moyen de faire de la programmation des modèles avec des compilateurs sans support de modèle natif.

Ceci est beaucoup plus complexe qu'une étape de traitement macro car il nécessiterait probablement l'analyse syntaxique et tokenizing le code pour comprendre les contextes.

Mon espoir est d'utiliser un tel outil lors de l'écriture du code OpenCL. OpenCL est C ++, mais ne prend pas en charge les modèles. J'espère que je peux écrire des modèles, même simples comme avec entier ou Bool seuls arguments et avoir un outil de pré-parser le fichier et passer à travers et trouver l'utilisation des modèles et d'élargir les invocations et me donner un nouveau code C ++ le compilateur OpenCL peut comprendre.

Même un outil très limité pourrait être utile, il n'a pas besoin de soutenir chaque bizarrerie de modèle, ni même soutenir plusieurs modules ou quoi que ce soit.

L'alternative:. Macros #define partout .. plus laid, dangereux, moins efficace et moins polyvalent

Était-ce utile?

La solution

Comeau C ++ peut "compiler" C ++ à C. Cela semble être proche de votre objectif, comme OpenCL ne supporte pas C ++ -. il est beaucoup plus proche de C

Autres conseils

Il n'y a pas d'outil - modèles font partie de la langue, pas une passe pré-processeur -. Ils sont traités par le compilateur, comme tout autre code

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top