http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46719
Summary: Cannot call C++0x variadic function template
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: [email protected]
ReportedBy: [email protected]
The following function template compiles without issue:
template <typename Return, typename FirstType, typename... ArgTypes>
function<Return(ArgTypes...)>
curry(function<Return(FirstType,ArgTypes...)> func, FirstType arg)
{
return [func, arg](ArgTypes... args) -> Return {
return func(arg, args...);
};
}
But as soon as I try to call it, like so:
int main()
{
cout << curry([](int x) -> double {
return static_cast<double>(x);
}, 10)();
return 0;
}
It throws the following error:
error: no matching function for call to ‘curry(main()::<lambda(int)>, int)’
The version of G++ used was:
g++ (GCC) 4.6.0 20101113 (experimental)