我可以写
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
};
ONLINE_EVALUATION_BETA2 的 Comeau C/C++ 4.3.10.1 (2008 年 10 月 6 日 11:28:09) 也给出了类似的错误。
"ComeauTest.c", line 7: error: a nonstatic member reference must be relative to a
specific object
decltype(a) b;
^
这种行为的理由是什么?
是的,这是有效的。在未评估的操作数内(操作数decltype
, sizeof
, noexcept
, ...) 您也可以在成员函数之外命名非静态数据成员。
您尝试过的那些编译器尚不支持此功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)