<分区>
我不明白为什么下面的代码可以编译?
struct A{ A(int); }; struct B{ A a{1}; };
但这不是:
struct A{ A(int); }; struct B{ A a(1); };
错误:数字常量前需要“,”或“...”
编译器不接受第二种形式有什么原因吗?我知道最令人烦恼的解析歧义,但我不认为这个问题是相关的。
编辑:正如 Bo 在下面的评论中所解释的那样,我错了。毕竟这个问题是与令人烦恼的解析有关。
我在 gcc-5.1.0 上用 --std=c++11 试过这个