Как это работает? (из Effective Modern C++
auto setSoundB =
std::bind(setAlarm,
std::bind(std::plus<>,
std::bind(steady_clock::now),
1h),
_1,
30s);
Если посмотреть на объявление bind:
http://en.cppreference.com/w/cpp/utility/functional/bind
то
args - list of arguments to bind, with the unbound arguments replaced by the placeholders _1, _2, _3... of namespace std::placeholders
т.е. после второго аргумента мы передаем или аргументы или плейсхолдеры, но никак не вызываемые объекты (т.е. к ним не будет применен operator()). Каким же образом передача bind как аргумента другого bind может работать?