函数调用显示非常量引用只能绑定左值
时间: 2023-11-12 10:07:55 浏览: 93
A级景区数据文件json
这个错误信息通常出现在代码中使用了非常量引用来调用函数时,而该非常量引用绑定的是右值,例如:
```
void foo(int& x) {
// do something
}
int main() {
foo(5); // Error: Non-const lvalue reference cannot bind to a temporary
return 0;
}
```
这个错误的原因是非常量引用只能绑定到左值,而字面量常量(如5)是右值,不能被引用。这个错误可以通过使用常量引用或创建一个左值来解决:
```
void foo(const int& x) {
// do something
}
int main() {
int x = 5;
foo(x); // OK
return 0;
}
```
阅读全文