SlideServe
Menu
Préférences
© SlideServe · v2026

Boost

laasya avatar
12 diapositives · 332 Views · Aug 06, 2013

Boost. Writing better code faster with Boost. Boost Introduction . Collection of C++ libraries Boost 1.30.2 includes 52 libraries, 1.31 will have at least 53 All are peer-reviewed, all are well-debugged, all are well-thought-out Excellent cross-platform/cross-compiler support

Boost - slide 1
01 / 12Boost
1 / 17

Télécharger la présentation

Boost
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Boost Writing better code faster with Boost

  2. Boost Introduction • Collection of C++ libraries • Boost 1.30.2 includes 52 libraries, 1.31 will have at least 53 • All are peer-reviewed, all are well-debugged, all are well-thought-out • Excellent cross-platform/cross-compiler support • Designed to integrate well with the C++ Standard Library, and add new functionality to it • Can be thought of as a “training ground” for additions to the C++ Standard Library

  3. Agenda • We will have overviews of: • Function and Bind Libraries • Smart Pointers • Miscellaneous Utilities • Preprocessor Library • We will also have an in-depth view of Boost Lambda Library

  4. Overview • STL and Boost are like Chris Page and Dylan • Boost helps you create simpler, more robust code • Parts of Boost help you use STL more easily and effectively • Other parts help with exception safety, help prevent errors, and help with code generation

  5. Function and Bind Libraries • Function – like a function pointer and like a functor template parameter: the best of both worlds • Bind – generalized version of bind1st, bind2nd, mem_fun, mem_fun_ref, ptr_fun, all rolled into one • Example: int_wrapper • Exercise: access

  6. Smart Pointers • Assists in creating exception-safe and robust code • Better and more complete than std::auto_ptr • Example

  7. Miscellaneous Utilities • noncopyable, static_assert – catch programming errors at compile time • type_traits – determine attributes of types for catching errors, generating better error messages, template metaprogramming • Example

  8. Preprocessor Library • Used for generating code with the preprocessor • This is useful for generating purely repetitive code that templates can’t handle • Even better for generating enumerations: for example, overloads of a function that takes from 0 to N parameters • Example: create

  9. Lambda Library • Used for creating “lambdas” – unnamed local functions • Perfect solution for creating functors for STL algorithms • Clearly not as good as a language extension, but very nice, nonetheless • Trivial example - outputting a vector for_each(v.begin(), v.end(), cout << _1 << ‘ ’);

  10. More Lambda Library • Has facilities for most operators, solutions for those that are prevented by language constraints • Lambdas can access locals • Has its own bind • Has control structures - if/else, while, do/while, for, switch • Has facilities for exception handling

  11. Summary • We have covered some of my favorite parts of Boost, but there are over 40 more libraries • Starting today: use Boost’s smart pointers and noncopyable in your C++ code • Move on to the other parts as you need them • Feedback time!

  12. Where to Get More Information • Boost: http://www.boost.org/ • (plug) Vanteon: http://www.vanteon.com/