template<typename T>
void tbLog(T& t)
{
cout << t << endl;
}
//void tbLog()
template<typename T, typename... Args>
void tbLog(T& t, Args&&... args)
{
cout << t;
tbLog(args...);
}
此段代码用了&&,所以使用tbLog( 2, “xx”, 1.f, " ", 444); 是可以的
template<typename T>
void tbLog(T& t)
{
cout << t << endl;
}
//void tbLog()
template<typename T, typename... Args>
void tbLog(T& t, Args&... args)
{
cout << t;
tbLog(args...);
}
此段代码用的是&,所以使用tbLog( 2, “xx”, 1.f, " ", 444)时,会出现编译错误。
这个区别应该就是右值引起的差别。其中2 1.f 444都是右值,是不能作为引用&参数。