我想要做
template<typename... ArgTypes> void print(ArgTypes... Args)
{
print(Args)...;
}
Run Code Online (Sandbox Code Playgroud)
并且它相当于这个相当庞大的递归链:
template<typename T, typename... ArgTypes> void print(const T& t, ArgTypes... Args)
{
print(t);
print(Args...);
}
Run Code Online (Sandbox Code Playgroud)
然后是我想要打印的每种类型的显式单参数专精.
递归实现的"问题"是生成了大量冗余代码,因为每个递归步骤都会产生一个新的N-1参数函数,而我想要的代码只会为单个N-arg print函数生成代码,并且具有最多的N专业print功能.