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: unassig...@gcc.gnu.org
        ReportedBy: eplawless+...@gmail.com


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)

Reply via email to