In base a C++ Primer, l'operatore di freccia C++ fornisce un lvalue. Inoltre decltype
di un'espressione che produce un lvalue genererà un tipo di riferimento. Quindi, perché il seguente decltype non produce non in un tipo di riferimento.Il tipo di freccia C++ restituisce lvalue
struct MyStruct {
string name
};
MyStruct s;
s.name = "aname";
MyStruct* p = &s;
decltype (p -> name) str = s.name; //type of str will be string and not &string although p -> name yields an lvalue
Vedere http://en.cppreference.com/w/cpp/language/decltype. – Holt