Je travaille sur un grand projet C++ qui utilise des builds Unity. Pour ceux qui ne sont pas familiers avec la pratique, Unity construit #include plusieurs fichiers d'implémentation C++ liés dans une grande unité de traduction qui est ensuite compilée en un seul. Cela évite de recompiler les en-têtes, réduit les temps de liaison, améliore la taille/performance des exécutables en apportant plus de fonctions dans les liens internes, etc.Safe Unity Builds
Cependant, j'ai juste attrapé un bogue latent dans une de nos constructions. Un fichier d'implémentation a utilisé la bibliothèque sans inclure le fichier d'en-tête associé, mais il a été compilé et exécuté. Après m'être gratté la tête pour peu, j'ai réalisé qu'il était inclus par un fichier d'implémentation inclus avant celui-ci dans notre build unité. Aucun mal fait ici, mais cela aurait pu être une surprise embarrassante si quelqu'un avait essayé de réutiliser ce fichier plus tard de façon indépendante.
Existe-t-il un moyen d'intercepter ces dépendances silencieuses tout en conservant les avantages des constructions Unity en plus de générer périodiquement la version non-Unity?