2010-11-25 39 views
7

Après avoir lu about the pimpl idiom J'ai été horrifié!C++: Outil pour réduire automatiquement les dépendances à la compilation

N'existe-t-il pas un outil permettant d'inspecter un fichier .h/.cpp et d'en déduire les dépendances pouvant être supprimées?

+0

Non, il n'y en a pas. Le seul "outil" qui peut dire de façon fiable quelles dépendances sont requises est le compilateur C++ lui-même ... A donné à Daniel un +1 puisque sa déclaration correspond exactement à mon opinion. –

Répondre

2

Désolé, mais non il n'y en a pas. C++ repose encore sur des fichiers sources de pré-traitement, très mécaniques. Le développement C++ à grande échelle consiste à réduire les dépendances. À mon avis, C++ n'est tout simplement pas adapté à ce genre de tâches.

0

L'inspection de code statique pour C++ est un cauchemar, en raison de sa syntaxe et du préprocesseur de macro, je doute qu'il existe des outils comme celui que vous décrivez.

Si cela existait, qu'attendriez-vous? Souhaitez-vous refactoriser/réécrire le code pour vous? Ajouter et/ou supprimer quoi?

Cela me semble une tâche ardue. Est-ce que la précompilation des en-têtes ne résout pas beaucoup de ces horreurs?

+0

Je m'attendrais à ce qu'il suggère quelles inclusions pourraient être enlevées, lesquelles pourraient être remplacées par des déclarations prospectives et qui doivent être conservées – Jonathan

2

MS et g ++ les supportent maintenant.

+0

Avez-vous une référence pour cela? – Jonathan

+1

@Jonathan Pour gcc: http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html, pour MS: http://msdn.microsoft.com/en-us/library/szfdksca.aspx – Tom

+0

@ Tom: non, en réalité ils ne résolvent qu'un seul problème: réduire * recompilation complète * temps. De plus, si vos en-têtes précompilés comportent des en-têtes modifiables, vous en abusez. –