Donc, j'ai lu et il semble que les bibliothèques Boost soient beaucoup utilisées dans la pratique (pas dans ma boutique, cependant). Pourquoi est-ce? et qu'est-ce qui le rend si merveilleux?
Boost est très utilisé car:
Depuis la page d'accueil:
"... l'un des projets de bibliothèque C++ les plus appréciés et les mieux conçus au monde." - Herb Sutter et Andrei Alexandrescu, Normes de codage C++
"Article 55: Familiarisez-vous avec Boost." - Scott Meyers, Effective C++, 3e éd.
"La solution évidente pour la plupart des programmeurs est d'utiliser une bibliothèque qui fournit une plate-forme élégante et efficace indépendante des services nécessaires. Les exemples sont BOOST ..." - Bjarne Stroustrup, Abstraction, bibliothèques et efficacité en C++
Il s'agit donc d'une gamme de bibliothèques largement utilisées et acceptées, mais pourquoi en auriez-vous besoin?
Si tu as besoin:
Parce qu'ils ajoutent beaucoup de choses manquantes à la bibliothèque standard, à tel point que certains d'entre eux sont inclus dans la norme.
Boost people ne mentent pas:
Pourquoi une organisation devrait-elle utiliser Boost?
En un mot, la productivité. L'utilisation de bibliothèques de haute qualité comme Boost accélère le développement initial, réduit le nombre de bogues, réduit la réinvention de la roue et réduit les coûts de maintenance à long terme. Et comme les bibliothèques Boost ont tendance à devenir des normes de facto ou de jure, de nombreux programmeurs les connaissent déjà.
Dix des bibliothèques Boost sont incluses dans le TR1 de la bibliothèque standard C++ et sont donc prévues pour une normalisation complète ultérieure. D'autres bibliothèques Boost sont en préparation pour TR2. L'utilisation des bibliothèques Boost donne à une entreprise une longueur d'avance dans l'adoption de nouvelles technologies.
De nombreuses organisations utilisent déjà des programmes implémentés avec Boost, comme Adobe Acrobat Reader 7.0.
Quelques classes Boost sont très utiles (shared_ptr), mais je pense qu'elles sont devenues un peu folles avec des traits et des concepts dans Boost. Les temps de compilation et les énormes tailles binaires sont complètement fous avec Boost, comme c'est le cas avec tout code lourd de modèles. Il doit y avoir un équilibre. Je ne sais pas si Boost l'a trouvé.
Il ajoute des bibliothèques qui permettent une approche plus moderne de la programmation C++.
D'après mon expérience, de nombreux programmeurs C++ sont en fait des programmeurs C++ du début des années 1990, écrivant à peu près des classes C++, pas beaucoup d'utilisation de génériques. L'approche la plus moderne utilise des génériques pour composer des logiciels ensemble d'une manière qui ressemble plus à des langages dynamiques, mais vous obtenez toujours une vérification de type/des performances à la fin. C'est un peu moche à regarder. Mais une fois que vous avez surmonté les problèmes de syntaxe, c'est vraiment très agréable. Boost vous donne beaucoup d'outils dont vous avez besoin pour composer des trucs facilement. pointeurs intelligents, fonctions, lambdas, liaisons, etc. Ensuite, il y a des bibliothèques de boost qui exploitent cette nouvelle façon d'écrire en C++ pour fournir des choses comme la mise en réseau, l'expression régulière, etc etc ...
si vous écrivez beaucoup de boucles for, ou des objets de fonction de roulement à la main, ou si vous faites de la gestion de la mémoire, alors vous devriez certainement vérifier boost out.
BOOST est une collection de bibliothèques répondant aux besoins communs à de nombreux projets C++. Généralement, ils priorisent l'exactitude, la réutilisabilité, la portabilité, les performances d'exécution et l'efficacité de l'espace par rapport à la lisibilité du code d'implémentation BOOST, ou parfois des temps de compilation. Ils ont tendance à ne pas couvrir les exigences fonctionnelles complètes de haut niveau (par exemple, les cadres d'application) et proposent plutôt (heureusement) des blocs de construction qui peuvent être combinés plus librement sans dicter ou dominer la conception de l'application.
Les raisons importantes d'envisager l'utilisation de BOOST comprennent:
Les bibliothèques sont décrites en une ou deux lignes ici: http://www.boost.org/doc/libs/ .
Parce que la bibliothèque standard C++ n'est pas du tout complète.
Tout ce qui avec Kevlin Henney doit être pris en compte.
Boost est en C++ un peu comme .NET Framework est en C #, mais peut-être à une plus petite échelle.
Boost fondamentalement le synopsis de ce que la norme deviendra, en plus de tous les examens par les pairs et l'utilisation que Boost obtient, vous pouvez être sûr que vous obtenez un bon prix pour vos dépendances.
Cependant, la plupart des magasins n'utilisent pas Boost, car c'est une dépendance externe. Et en réalité, la réduction des dépendances externes est également très importante.
J'utilise un peu la bibliothèque du système de fichiers et le boost :: shared_ptr est assez astucieux. J'ai entendu dire qu'il faisait aussi autre chose.