【发布时间】:2013-09-02 03:08:05
【问题描述】:
你为什么可以这样做
int a;
const double &m = a;
但是当你这样做时
int a;
double &m = a;
你得到一个错误?
error: non-const lvalue reference to type 'double' cannot bind to a value of unrelated type 'int'
编辑:
更具体地说,我试图了解非常量引用无法绑定临时对象的原因。
【问题讨论】:
-
这个问题可以用以下两种方式之一来解释:要么你需要知道有一个规则允许 const 引用绑定到临时值,要么你想知道为什么。您可能会得到这两种答案,但您可能只对其中一种感兴趣……是哪一种?
-
这里的错误信息有点混乱。我会期待一些像 -
error: invalid initialization of non-const reference of type ‘double&’ from an rvalue of type ‘double’.
标签: c++