const int& dummy = 5;
上面的代码段使用g++ Compiler
编译时没有任何错误/警告。反过来使用代码段
int& dummy = 5;
生成以下错误代码:
invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’ int& dummy = 5;
由于来自c ++的引用类型是左值引用,我发现如果声明为const,可以为它分配一个rvalue是令人惊讶的。为什么呢?