C++ std 移动文件错误?

C++ std move document error?

我指的是document。两种形式都有 r 值参考作为输入 (T&& t).

但是我们可以将左值作为move的参数,在我下面的例子中,a是一个左值,它是可识别和内存寻址的。

有没有想过文件有误?

#include <iostream>

int main() {
    string a = "hello";
    string b(std::move(a));
    std::cout << "a is: " << a << endl;
    std::cout << "b is: " << b << endl;
}

输出,

a is: 
b is: hello

T&& t 不是 r-value 参考。它是前向引用,以前称为通用引用,是与模板或自动参数一起使用时的特殊情况。在这里阅读这个很好的解释 https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers