BoostCon 2012

Higher-Level C++ with the Boost Libraries

Advanced C++ Training / Intro to Boost Libraries

A hands-on introduction to Boost, showing how to use high-level Boost building blocks to get the job done sooner with code that is smaller, more verifiable, and more maintainable.

  • focus more attention on your actual application domain
  • delegate responsibility for infrastructure
  • gain first-hand experience with core Boost libraries
  • increase coding agility using abstraction and “reasonable” code

Prerequisites

A solid understanding of C++, including STL and the rest of its
standard library, and some experience using templates.

Format

Five days of lecures and hands-on exercises.

Topics

  • Exception-Safety, Program Invariants, and RAII
  • Making the Most of the STL
  • Idioms of Generic Libraries
  • High-Velocity Coding, Correctly!
  • Testing and Documentation
  • Function Objects and Higher-Order Programming
  • Iterator Adaptors
  • Containers, Ranges, and Views
  • Encapsulation, Abstraction, and Generic Code
  • Concurrency
  • Text Processing
  • The Standard TR1 Libraries

Boost Libraries Covered

  • Boost.SmartPtr
  • Boost.Utility (enable_if)
  • Boost.Bind
  • Boost.Function
  • Boost.TypeTraits
  • Boost.Lambda/Boost.Phoenix
  • Boost.Iterator
  • Boost.Spirit
  • Boost.Regex
  • Boost.Xpressive
  • Boost.String_algo
  • Boost.Lexical_cast
  • Boost.Tokenizer
  • Boost.Format
  • Boost.Range/Range_ex
  • Boost.Iterator
  • Boost.ForEach
  • Boost.Parameter
  • Boost.Thread
  • Boost.Accumulators


Note

Details and duration of this course can be adjusted to
accomodate your schedule, interests, and specific development
challenges.

Why This Course?

Here’s what one of our clients said about why they brought “Higher Level C++ With the Boost Libraries” into their organization:

I believe that we often spend time maintaining code that we’ve written ourselves that already  xists in Boost. By /my/ thinking, I would prefer that spent more of our time focused on our domain rather than replicating what someone else has done if we can get the same (or perhaps better) performance from the public code. Also, with Boost being something approaching a standard, it is likely to be familiar to incoming developers, reducing the learning curve for a new codebase. Finally, I believe that the peer review process of the Boost project helps to ensure that best and most modern practices are used. Consuming this code helps keep us connected with the C++ development community at large and improve our own internal practices, rather than becoming insular and inward looking.

As an example, we had our own intrusive linked list class that was used in many places. It was very simple and objects were limited to a single container. Some of us were in the process of expanding and improving it when we discovered boost::intrusive. Not only did boost::intrusive::list do everything that we wanted, but offered a number of policies that tweaked the performance for given use cases. The performance characteristics were such that no one could really object to it, so I started using it in preference to our existing list. Since then, as we’ve tried to move to newer compilers, we found our container crashed GCC 4.3, while boost::intrusive worked fine (which hits on another issue…Boost code has people outside of our company working on compiler compatibility so we don’t have to). Now we’ve started replacing it everywhere.

I’ve used Boost more than anyone else here and I’ve only used a small number of libraries. I can’t help but wonder if there are other gems that would simplify and improve our codebase.

—Jay Miller, GETCO LLC

News

  • The Future of C++

    Dave Abrahams has been thinking about what’s next for the C++ language in a series of articles at the C++Next blog.

    More...

  • Programmer’s Grimoire Interview: now in English

    Thanks to Takatoshi Kondo and colleagues, non-Japanese readers can now view this excerpt from Volume 2, “The Evolution of Languages” - Programmer’s Grimoire Interview with Dave Abrahams  

    More...

  • The latest issue of Programmer’s Grimoire features an interview with Dave Abrahams

    Vol.2 of the Japanese-language journal Programmer’s Grimoire, is subtitled “The Evolution of Languages.” If you don’t read Japanese, fear not, an English translation is coming soon.

    More...