读书人

关于右值引述

发布时间: 2012-10-16 09:57:37 作者: rapoo

关于右值引用
template<typename T>
void fun(T&& t)
{puts(t.data());}
//上面的代码成功

/*这样就不行
void fun(std::string&& str)
{puts(str.data());}
*/

int main() {
std::string strr("123");
fun(strr); //如果用第二种方式,则编译不过

return 0;
}

请问这是为什么?

[解决办法]
模版参数T的类型推导为std::string&,则T&&即std::string& &&坍缩为std::string&(左值引用)。
[解决办法]

探讨
模版参数T的类型推导为std::string&,则T&&即std::string& &&坍缩为std::string&(左值引用)。

读书人网 >C++

热点推荐