What's the correct way to do this with g++:
template < typename F >
void g (F f);
template < typename ... A >
void h (A ... a);
template < typename ... A >
void f (A ... a) {
g ([&a] () { h (a...); }); // g++-4.6: error: parameter packs not expanded with »...«
}
I think you need to expand the pack
a
in the capture list as well, like this:Here is the relevant text from the C++0x Final Committee Draft, section 5.1.2.23: