Я думаю, вам нужно расширить пакет a
в списке захвата, например:
template < typename ... A >
void f (A ... a) {
g ([&, a...] () { h (a...); });
}
Вот соответствующий текст из проекта окончательного комитета C ++ 0x, раздел 5.1.2.23:
.
Захват с последующим многоточием является
расширение пакета (14.5.3). [Пример:
template<class... Args> void f(Args... args) {
auto lm = [&, args...] { return g(args...); }; lm();
}
- конец примера]