Depuis LLVM/cLang est particulièrement bien conçu.Prise en charge de macro supplémentaire dans clang?
Cela semble être une excellente opportunité pour augmenter le système de préprocesseur/préprocesseur C/C++.
Est-ce que quelqu'un sait de
- capacités macro/préprocesseur supplémentaires ajoutés par Clang ou
- projets parallèles pour rendre le système macro plus puissant (comme turing complète)
Note: Je suis poser des questions sur les macros. Modèles non C++ Je veux que ce thread soit spécifique à la macro/au préprocesseur.
Cela semble intéressant, mais googler autour je ne peux pas trouver comment dire à clang d'utiliser m4 comme un préprocesseur comment puis-je faire cela? En particulier, supposons que j'ai un .hpp qui inclut un fichier .hpp anotehr; comment puis-je dire à m4 de pré-traiter le fichier inclus aussi? – anon
Ce que vous auriez à faire est d'utiliser un script sur M4: pré-traiter tous les fichiers (y compris les en-têtes) avant de les envoyer au compilateur C++. Les bonnes nouvelles sont que vous n'avez pas inventé un système de macro puissant, comme M4 est déjà capable de Turing. Si vous insistez pour que les macros soient définies * dans les fichiers .hpp, vous pouvez définir les macros M4 dans les commentaires C++, effectuer une pré-analyse du code pour extraire et collecter les macros M4, puis exécuter l'application M4. –