小编Car*_*sHD的帖子

C++,函数参数中的右值引用

我正在努力理解rvalue参考文献.我看到他们是如何在构造函数中使用,之类的东西std::movestd::forward,但我还是不明白为什么这不起作用:

void func(string&& str)
{
    cout << str << endl;
}
int main(int argc, char* argv[])
{
    string s("string");
    func(s);
}
Run Code Online (Sandbox Code Playgroud)

这样做:

template<typename T>
void func(T&& str)
{
    cout << str << endl;
}
int main(int argc, char* argv[])
{
    string s("string");
    func(s);
}
Run Code Online (Sandbox Code Playgroud)

为什么它与函数模板版本一起使用?

c++ templates rvalue-reference c++11

15
推荐指数
2
解决办法
2904
查看次数

标签 统计

c++ ×1

c++11 ×1

rvalue-reference ×1

templates ×1