Presentation on theme: "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."— Presentation transcript:
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
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
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
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
Smart Pointers Assists in creating exception-safe and robust code Better and more complete than std::auto_ptr Example
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
Preprocessor Library Used for generating code with the preprocessor This is useful for generating purely repetitive code that templates cant handle Even better for generating enumerations: for example, overloads of a function that takes from 0 to N parameters Example: create
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 << );
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
Summary We have covered some of my favorite parts of Boost, but there are over 40 more libraries Starting today: use Boosts smart pointers and noncopyable in your C++ code Move on to the other parts as you need them Feedback time!
Where to Get More Information Boost: http://www.boost.org/http://www.boost.org/ (plug) Vanteon: http://www.vanteon.com/http://www.vanteon.com/
Your consent to our cookies if you continue to use this website.