您的位置:首页 > 编程语言 > C语言/C++

C++可变模板参数中&&和&的使用

2016-09-02 11:41 656 查看
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都是右值,是不能作为引用&参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: