binding arguments of functions
зачем это надо
function objects
function object binder (aka {boost,std}::bind)
C++11 anonymous functions
type erasure
polymorphic function wrapper (aka {boost,std}::function)
any_iterator
boost::any
signals (aka listeners aka observers)
зачем это нужно
примеры почему наивная реализация не всегда хорошо работает
понятие reentrancy
пару слов про существующие реализации (boost::signals, boost::signals2, Qt Signals)
exception safety
зачем это нужно
RAII
ошибки и как их можно обрабатывать (propagation to caller, assertion, logging, precess termination)
UNIX-signals (это не тоже самое что signals из пункта 3), hardware interrupts
зачем это нужно
reentrancy
multithreading
зачем это нужно
понятие race condition
atomic operations
mutexes (mutex, recuirsive_mutex, shared_mutex)
condition_variable
понятие dead lock
futures
TLS (thread local storage)
asynchronous operations
зачем это нужно
как это работает
механизмы предоставляемые ОС (select, poll, epoll, kqueue, IOCP)
remote procedure call
зачем это нужно
apartment threading model
reentrancy
достоинства/недостатки apartment threading model
free threaded threading model
достоинства/недостатки free threaded threading model
пару слов про реализации (COM, CORBA, D-Bus)
fibers
зачем это нужно
coroutines
generators
как это работает
FLS (fiber local storage)
С++11
про каждую фичу надо говорить, зачем это нужно, как это работает
C++1y and beyond
static_if
modules
concepts
ranges
зачем это нужно
как это работает