【发布时间】:2014-02-24 07:12:39
【问题描述】:
我读到这个:decltype and parentheses
但我看不懂答案!
如果 (a->x) 的类型是 const double& 为什么这段代码会运行?!
#include <iostream>
struct A { double x; };
int main()
{
A *a=new A;
decltype(a->x) x3;
decltype((a->x)) x4 = x3; // is it really const double& ??
x4=3;// no error !
const double& x5=x3;
x5=5;//error
}
【问题讨论】:
-
您忘记了
const中的const在您链接的示例中,它是const A* a = new A();。 -
(a->x) = x3合法吗?如果是,decltype((a->x))是double& -
@MarkGarcia tnx 我明白了
标签: c++ c++11 decltype const-reference