C++Now! 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

  • BoostCon / C++Next!: Register Now and Save $100

    Less than three days remain before the early registration deadline The amazing 6th Boost conference, now with additional track containing 15 hours of C++11 tutorials, is still $599 for a short time only.

    More...

  • C++ Next!: the future of C++, brought to you by BoostCon

    Join the entire BoostPro team in Aspen May 12 – 18th. With the addition of a third track and the expansion of an already stellar program, BoostCon 2012 has come into its own this year. The early-bird registration deadline is April 15th, so sign up now.

    More...

  • Dave to speak at PossConn 2012

    Dave Abrahams will give two talks at this year’s Palmetto Open Source Software Conference in Columbia, SC on March 28th & 29th. More information at www.posscon.org.

    More...