C++Now!

Thank You

After 12 years in business, the principals of BoostPro have decided it's time for new challenges. The technical leads are still pursuing their commitment to transforming the way software is written: John Wiegley has started working for FPComplete, building tools for Haskell programmers, and Dave Abrahams has joined a team at Apple, shaping the future of Mac and iOS development.

We thank you for your support of BoostPro over the years; it has been our privilege to serve you.

Note:The open source C++ library collection at Boost.org is still very much alive and well!

C++11

The time to begin planning your team’s C++ future is now.

The next C++ standard (“C++11”) is going to change the world.  Here’s your chance to get first-hand experience with the new features, so you can hit the ground running when new compilers are delivered.  In this class we’ll be using real C++11 compilers and libraries to get down-and-dirty with rvalue references, smart pointers, range-based for loops, and much more.

Make BoostPro Your Choice for C++11 Training

  • We know the language – With over twenty years of collective ISO C++ Committee experience, we understand the facts, the spirit, and the rationale behind standard C++.
  • We implement the language – We are actively engaged in C++ compiler development projects for major vendors.
  • We use the language – We’re not just consultants. We’ve been getting our hands dirty and solving real problems in C++ for customers and in the open-source world since 2001.

Format

Five days of lecture, discussion, and hands-on exercises.

Course Outline

  • Introduction
    • Evolution of the C++ standard
    • Goals for C++11
    • The Most Important Changes At-A-Glance
    • Support for C++11 in existing compilers
  • “Simple” Changes “For Everybody”
    • Type deduction (auto)
    • Range-based for loop
    • Raw/Unicode string encodings
    • Unicode conversions
    • nullptr
    • closing right angle brackets
  • Function Objects
    • lambda expressions
    • std::bind
    • std::function
    • Comparison with TR1 and Boost
  • Template and type aliases
  • Uniform initialization
  • Initializer Lists
  • Preprocessor Enhancements
    • __func__
    • _Pragma
    • _VA_ARGS_
  • attributes
  • Move Semantics
    • Rvalue References
    • Implicitly-generated Move Operations
    • Perfect Forwarding
  • Changes to the Type System
    • Enumerations
      • enum class (scoped and strongly typed enums)
      • enum forward declarations
    • generalized PODs (standard layout types)
    • extended integer types and long long
    • generalized unions
    • alignments (alignas, alignof, and the std::align(...) function)
    • addressof
    • constexpr
  • Classes and OOP
    • In-class member initializers
    • explicit conversion operators
    • override and final
    • delegating and inheriting constructors
    • defaulted and deleted functions
    • extended friend
  • Template Features
    • Variadic templates
    • static_assert
    • extern templates
    • trailing return type syntax for function declarations
    • decltype and declval
    • Extended SFINAE rule
  • User-defined literals
  • inline namespaces and library versioning
  • Enhancements to Standard Containers
    • move semantics support
    • initializer_list support
    • const_iterator support: cbegin / cend, insert changes
    • in-place element construction (emplace, emplace_front, emplace_back)
    • shrink_to_fit
    • vector<T>::data
    • map<K,V>::at
    • New Allocator interface
    • Scoped Allocators and scoped_allocator_adaptor
  • New Library Components
    • Containers
      • forward_list
      • Hash Tables (unordered_set, unordered_multiset, unordered_map, unordered_multimap)
      • tuple
      • Fixed-sized arrays (array)
    • Smart Pointers
      • unique_ptr
      • shared_ptr
      • weak_ptr
      • make_shared
      • allocate_shared
      • pointer_traits
    • Regular expression support (regex)
  • Algorithms
    • all_of, any_of, none_of, find_if_not, copy_if, copy_n, move, move_backward,
      partition_copy, partition_point, partial_sort_copy, is_sorted, is_sorted_until,
      is_heap, is_heap_until, =minmax, minmax_element,
      iota
    • initializer_list forms of min, max, minmax
    • move_iterator
    • array swap
  • garbage collection ABI
  • Time utilities (time_point, duration)
  • compile-time rational arithmetic
  • <type_traits>, conditional, and enable_if
  • Error Handling
    • copying and rethrowing exceptions
    • nested_exception
    • system_error and friends
  • Concurrency
    • Basic threading support
      • thread, async, future, promise
      • locks, mutexes and condition variables
    • More threading support
      • thread-local storage (thread_local)
      • initialization / call_once
      • detach
      • packaged_task
      • User-defined mutexes and locks
      • yield and sleep
    • Memory model for concurrency
    • atomic (lock-free) operations
    • Shutting down threads
      • Interruption
      • quick_exit and at_quick_exit
  • Random Number Generators
  • Where the Language is Headed After C++11

Note

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

Schedule Your Training Now

Availability for training in 2012 is beginning to fill up. Contact us today to reserve your place on the schedule!

[contact-form-7 id="636" title="Schedule Your C++11 Training"]

News

  • Boost 1.50 installer for 32-bit Windows now available

    An installer for Boost 1.50 available for is available for immediate download here

    More...

  • Boost 1.50 installer for 64-bit Windows now available

    BoostPro’s free 64-bit installer for Windows is now available for download here

    More...

  • 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...