Ближайший аналог к этой записи: struct Closure { template<typename... T> void operator()(T... args) { print_tuple(args...); } } closure; apply(closure, t);
Объект здесь вполне конкретный, и его получается передать. А вот operator() может принимать что угодно. В примере выше лямбда создаёт примерно такой объект, а auto говорит, что его operator() нужно сделать шаблоном, принимающим T
Обсуждают сегодня