我试图理解为什么下面的代码用g ++编译而不是Visual Studio 2010(visual c ++)。
int main(int argc, char **argv)
{
const char aChar = 5;
enum
{
firstVal = 1 & aChar,
secondVal = 1 & "WOW"[0]
};
}
Visual Studio抱怨Error 13 error C2057: expected constant expression
,但g ++ 4.8.3似乎没有任何问题。字符串文字不是有效的const char数组吗?如果是这样,为什么firstVal
和secondVal
的行为会有所不同?