error C2662 无法将左值绑定到右值 —— 变量永远是左值,即使它的类型为右值引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error C2662 无法将左值绑定到右值 —— 变量永远是左值,即使它的类型为右值引用相关的知识,希望对你有一定的参考价值。
1 #include <utility> 2 3 struct A 4 { 5 void f() && { } 6 }; 7 8 void g(A &&a) 9 { 10 a.f(); //error, a是左值 11 std::move(a).f(); //fine 12 } 13 14 int main() { return 0; }
其实有了右值表示临时对象这一观察结果,变量是左值这一特性并不令人惊讶。毕竟,变量是持久的,直到离开作用域时才被销毁。(《C++ Primer》)
以上是关于error C2662 无法将左值绑定到右值 —— 变量永远是左值,即使它的类型为右值引用的主要内容,如果未能解决你的问题,请参考以下文章
std::forward vs std::move 同时将左值绑定到右值引用