Je ne comprends pas la dernière ligne de l'exemple de la page 148 du FCD (§7.6.1.2 / 4):
const int&& foo();
int i;
struct A { double x; };
const A* a = new A();
decltype(foo()) x1 = i; // type is const int&&
decltype(i) x2; // type is int
decltype(a->x) x3; // type is double
decltype((a->x)) x4 = x3; // type is const double&
Pourquoi les parenthèses font-elles une différence? Ne devrait-il pas simplement s'agir de double
comme dans la ligne ci-dessus?