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
forloop - Raw/Unicode string encodings
- Unicode conversions
nullptr- closing right angle brackets
- Type deduction (
- 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)enumforward declarations
- generalized PODs (standard layout types)
- extended integer types and long long
- generalized unions
- alignments (
alignas,alignof, and thestd::align(...)function) addressofconstexpr
- Enumerations
- Classes and OOP
- In-class member initializers
explicitconversion operatorsoverrideandfinal- delegating and inheriting constructors
- defaulted and deleted functions
- extended
friend
- Template Features
- Variadic templates
static_assertexterntemplates- trailing return type syntax for function declarations
decltypeanddeclval- Extended SFINAE rule
- User-defined literals
inlinenamespaces and library versioning- Enhancements to Standard Containers
- move semantics support
initializer_listsupportconst_iteratorsupport:cbegin/cend,insertchanges- in-place element construction (
emplace,emplace_front,emplace_back) shrink_to_fitvector<T>::datamap<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_ptrshared_ptrweak_ptrmake_sharedallocate_sharedpointer_traits
- Regular expression support (
regex)
- Containers
- 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,
iotainitializer_listforms ofmin,max,minmaxmove_iterator- array swap
- garbage collection ABI
- Time utilities (
time_point,duration) - compile-time rational arithmetic
<type_traits>,conditional, andenable_if- Error Handling
- copying and rethrowing exceptions
- nested_exception
system_errorand 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 detachpackaged_task- User-defined mutexes and locks
yieldandsleep
- thread-local storage (
- Memory model for concurrency
atomic(lock-free) operations- Shutting down threads
- Interruption
quick_exitandat_quick_exit
- Basic threading support
- 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"]