我有一个类和一个const变量.
struct A
{
int b;
};
A const a;
Run Code Online (Sandbox Code Playgroud)
该类A是POD,可以像这样初始化.
A const a = { 3 };
Run Code Online (Sandbox Code Playgroud)
恕我直言,有这样的构造函数看起来很好.
struct A
{
int b;
A(int newB) : b(newB)
{
}
};
Run Code Online (Sandbox Code Playgroud)
但Clang假定A为非聚合类型.为什么我不能有这样的构造函数?或者我应该做些什么?
我修改了问题来表达我原来的意思.我已经写了struct为class错误,并抱歉@Johannes约困惑:)
const enum Alpha{
X=9,
Y=5,
Z=2
}p;
int main(){
enum Alpha a,b;
a= X;
b= Z;
p = X;
p = Y;
printf("%d",a+b-p);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么在MSVC编译器中允许p = X和p = Y?此代码输出6.不应该在初始化时分配const值,而不是再次分配?