嗨,我在C中获得了可变参数模板

int sum(int a, int b) { return a + b; }

template<typename Func, typename... Args>
auto MainCall(Func func, Args&&... args)-> typename std::result_of<Func(Args...)>::type
{
    return func(std::forward<Args>(args)...);
}

template <typename... Args>
int call2(Args const&... args)
{
    return MainCall(sum, args...); /* calling template function MainCall,  
                                      how to pass the variable arguments to   
                                      Maincall from here?
                                   */
}

int _tmain(int argc, _TCHAR* argv[])
{
  cout << call2(4,5) << endl;
  return 0;
}

我是否正确地传递参数?我得到像这样的编译器错误
error C3520: 'args' : parameter pack must be expanded in this context
see reference to function template instantiation 'int call2(const int &,const int &)' being compiled

将变量参数传递给MainCall模板的正确方法是什么?

Note: Parameters need to be always variable so that MainCall can take any function with any number of arguments.. Just for an example I have writen sum function here..