我对C ++中变量的右值类型感到困惑。 下面的代码为我提供了以下编译器错误
错误:无法将“ int &&”类型的右值引用绑定到“ int”类型的左值f1(b);
void f1(int&& a)
{
std::cout << "f1 called." << std::endl;
}
int main()
{
int a = 7;
int&& b = std::move(a);
f1(b);
}
将b移至f可解决问题
f1(std::move(b));
b的类型显然是int &&。在这种情况下,b如何被视为左值?