请问有人能指出C++标准中相应的段落,或者可以解释一下为什么如果我取消注释({123})
,我的代码就无法编译吗?
一般来说,我理解默认成员初始化和通过初始化列表进行初始化的使用方法存在问题,但我无法引用确切的原因。
enum class MY: int
{
A = 1
};
struct abc
{
int a;/*{123};*/ //compilation failed if uncommented
MY m;
};
abc a = {1, MY::A};
如果出现未注释的文本,则会出现编译错误:
错误:无法将“{1,A}”从“<brace-enclosed initializer list>”转换为“abc”
-std=c++14
编译,那么就没问题了。 - Mine