Pergunta

Existe um compilador ou autônomo pré-processador que leva arquivos C ++ e corre um passe de expansão modelo, gerando novo código C ++ com instantiations modelo expandido?

Lembro-me de tal ferramenta em meados dos anos 90, quando modelos ainda eram novos e experimental, e o pré-processador era uma maneira de fazer a programação modelo com compiladores sem suporte modelo nativa.

Este é muito mais complicado do que uma etapa de processamento de macro, uma vez que provavelmente exigiria análise e tokenizing o código para compreender os contextos.

A minha esperança é usar essa ferramenta um ao escrever código OpenCL. OpenCL é C ++, mas não suporta modelos. Eu estou esperando que eu posso escrever modelos, mesmo os mais simples, como com inteiro ou bool únicos argumentos, e ter alguma ferramenta de pré-analisar o arquivo e passar e encontrar o uso dos modelos e expandir as invocações e me dar novo código C ++ que o compilador OpenCL pode entender.

Mesmo uma ferramenta muito limitados poderia ser útil, ele não precisa de suporte a cada peculiaridade modelo, nem mesmo suportar vários módulos ou nada.

A alternativa:. Macros #define em todos os lugares .. mais feio, perigoso, menos eficiente e menos versátil

Foi útil?

Solução

Comeau C ++ pode "compilação" C ++ para C. Isto parece estar perto de seu objetivo, como O OpenCL não suporta C ++ -. que é muito mais perto de C

Outras dicas

Não existe tal ferramenta - modelos são parte da linguagem, não passar algum pré-processador -. Eles são processados ??pelo compilador, assim como outro código

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top