Il est bien connu que la déclaration est préférable à l'utilisation de #inclut dans les fichiers d'en-tête, mais quelle est la meilleure façon de gérer les déclarations de l'avant?
Pendant un moment, j'étais en ajoutant manuellement pour chaque fichier d'en-tête l'en avant les déclarations qui ont été requis par ce fichier d'en-tête. Cependant, je me suis retrouvé avec un tas de fichiers d'en-tête de répéter la même demi-douzaine d'avant déclarations, qui semble redondant, et le maintien de ces répété listes obtenu d'être un peu fastidieux.
Déclaration des typedefs (par exemple, struct SensorRecordId; typedef std::vector<SensorRecordId> SensorRecordIdList;
) est également un peu beaucoup à dupliquer sur plusieurs fichiers d'en-tête.
Alors j'ai fait un ProjectForwards.h
le fichier qui contient l'ensemble de mon avant déclarations et compris que là où cela était nécessaire. Au début, cela semblait être une bonne idée - un peu moins de redondance, et beaucoup plus facile à l'entretien des typedefs. Mais maintenant, en tant que résultat de l'utilisation de ProjectForwards.h
si lourdement, à chaque fois que j'ajoute une nouvelle classe, j'ai reconstruire le monde, ce qui ralentit le développement.
Alors, quelle est la meilleure façon de gérer les déclarations de l'avant? Dois-je mordre la balle et répéter des déclarations de l'avant à travers de multiples sous-systèmes? Continuer avec l' ProjectForwards.h
approche? Essayez de fractionner ProjectForwards.h
plusieurs SubsystemForwards.h
fichiers? Une autre solution je suis dominant?