Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


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:

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 cant 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 Boosts 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/http://www.boost.org/ (plug) Vanteon: http://www.vanteon.com/http://www.vanteon.com/


Download ppt "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."

Similar presentations


Ads by Google