C++ 左值右值,用于移动(move)和转发(forward)_edwardlulinux的专栏-优快云博客
1. 左值和右值、左值引用和右值引用
凡是真正的存在内存当中,而不是寄存器当中的值就是左值,其余的都是右值;
凡是取地址(&
)操作可以成功的都是左值,其余都是右值。
2. 移动语义(move semantic)
g++ -std=c++11 -fno-elide-constructors
std::move()的作用是将左值转换为右值(无条件转换为右值)
3. 完美转发(perfect forward)
std::forward<T>() 保留参数的左右值类型