1 / 12

Boost

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

benjamin
Download Presentation

Boost

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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/

More Related