clang 6.0.0接受以下代码,但gcc 8.2拒绝
enum class E { Good, Bad, }; struct S { E e : 2; int dummy; }; S f() { return {E::Good, 100}; }
Live godbolt example
海湾合作委员会抱怨
错误:无法将'{Good, 100}'从'<brace-enclosed initializer list>'转换为'S'
{Good, 100}
<brace-enclosed initializer list>
S
哪一个是正确的?标准中哪里谈到这种情况?