xml*_*lmx 4 c++ overloading variadic-functions
int foo(int i)
{
return i;
}
int foo(int i, int... n)
{
return i + foo(n...);
}
int main()
{
return foo(1, 2, 3); // error
}
Run Code Online (Sandbox Code Playgroud)
为什么C++不允许这样直观的语法?
您需要模板机制来实例化您的第二个foo函数,因为函数的签名仅在使用时确定.因此,您可以在这里要求的唯一功能是,您的语法意味着一个函数模板,其中模板参数包被约束为键入int.
但是,对于没有template关键字的模板存在相当大的反对意见.但是,在这方面,概念TS将会发生变化.