我正在阅读第5版的C++ Primer,在p中。 71他们首先给出以下代码示例:
const int ci = 0, &cj = ci;
decltype(ci) x = 0;
decltype(cj) y = x;
decltype(cj) z; //error
然后他们说:
这是什么意思?我不明白那里的
y
指的是x
。那么有什么收获呢? 最佳答案
我相信他们试图说decltype(cj)
不会给您cj
所指对象的类型(即const int
),而是会给您cj
本身的类型。因此y
将是const int&
。
将其与之进行比较的情况是在表达式中使用引用的名称时。该标准说:
也就是说,在表达式中使用引用的名称时,作用的不是引用而是引用的对象。这就是给引用类型提供“别名”功能的原因。