Я могу написать
int a;
decltype(a) b;
но мой компилятор (Microsoft Visual Studio 2010, cl
версия 16.00.40219.01) запрещает мне
class A
{
int a;
decltype(a) b;// error C2327: 'A::a' : is not a type name, static, or enumerator
};
Также Comeau C / C ++ 4.3.10.1 (6 октября 2008 11:28:09) для ONLINE_EVALUATION_BETA2 выдает похожую ошибку.
"ComeauTest.c", line 7: error: a nonstatic member reference must be relative to a
specific object
decltype(a) b;
^
В чем причина такого поведения?