Boost rock, c'est super et extrêmement puissant, mais je déteste chaque fois que je construis une solution dans mon Visual Studio 7.1.Construire Boost-powered solution dans VS
Il semble que Boost ait un impact sur le temps de construction (pas positif). Je ne peux pas retirer toute l'utilisation de Boost de mon projet pour comparer les temps de construction mais je l'ai essayé sur de petits projets et la différence est significative.
Je suppose que le problème est que Boost se compose de milliers de fichiers d'en-tête qui se comprennent très largement. Ainsi, lorsque j'inclus boost/function.hpp
dans mon fichier d'en-tête, cela peut entraîner l'inclusion de centaines d'en-têtes Boost.
Y at-il quelqu'un qui a vécu la même chose? Des idées pour le résoudre?
pensées approximatives:
- boost Ajouter aux en-têtes précompilés? Au moins, ils seront analysés et conservés dans un seul fichier
- Est-ce que l'instantination explicite pour certains modèles Boost?
- Préparez les en-têtes Boost en quelque sorte?
- Ne pas inclure Boost à des fichiers d'en-tête (sons irréel)
- ...
PS. Yep, Boost utilise aussi des templates très difficiles à compiler, je suppose, donc des milliers de fichiers d'entêtes ne sont pas le seul problème.
Il semble que cela ne fonctionnera pas pour moi. Nous utilisons déjà des ordinateurs très rapides mais le processus de construction prend plusieurs heures ... Et comment "trouver quel fichier d'en-tête ou quelle ligne de code est responsable du retard de compilation" automatiquement? La base de code est énorme. – bocco
Avez-vous une base pour cette réponse? Il semble contre-intuitif, et des tests simples (commencer avec un main vide(), puis ajouter des inclusions de la STL fragmentaire) montre que l'inclusion d'un fichier a un coût très réel. Qu'est-ce que je rate? Merci! –
Je ne nie pas que l'inclusion de fichiers a un coût. Cependant, il est de mon expérience que parfois un coût plus important provient de l'utilisation de certains codes de boost, que de l'inclure lui-même. – StackedCrooked