Programming in C++, part 2

Lecture 1. New and delete operators, overloading. FastAllocator. Standard allocators.
Lecture 2. Lambda expressions and functors.
Lecture 3. Move semantics, rvalue references.
Lecture 4. Introduction to multithreading. Data races. Mutexes and atomics.
Lecture 5. Mutex types (recursive_mutex). Scoped_lock idiom (lock_guard and unique_lock). Condition variable. pattern "double check locking" for singleton. Specifying multithreaded versions of classes via strategies. thread_local specifier. Thread pool.
Lecture 6. Deadlocks and solutions: hierarchical mutexes, std::lock. std::call_once and initialization of local static variables. boost::shared_mutex. atomic_flag and atomic.
Lecture 7. Lock-free data structures.
Lecture 8. Multithreaded patterns.
Lecture 9. New features in C++11.
Lecture 10. The subtle points of C++: sequence points, modification order, alignment.
Lecture 11. Patterns.
Lecture 12. Dynamic modules.