samedi 2 septembre 2017

c++11 decltype(e) is the type of the entity named by e


I am not asking decltype((x)), I know how it works.

According to the draft N4687, § 10.1.7.2

    4 For an expression e, the type denoted by decltype(e) is defined as follows:
        ...
(4.2)   — otherwise, if e is an unparenthesized id-expression or an unparenthesized class
          member access (8.2.5), decltype(e) is the type of the entity named by e. If
          there is no such entity, or if e names a set of overloaded functions, the
          program is ill-formed;
        ...

And example

struct A { double x; };
const A* a = new A();
decltype(a->x) x3; // type is double

My question is,
a->x is const double, but why does x3 is double? where does the const go?

Aucun commentaire:

Enregistrer un commentaire