Следующий код принят 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};
}
GCC жалуется
error: не удалось преобразовать '
{Good, 100}
' из '<brace-enclosed initializer list>
' в 'S
'
Который правильный? Где в стандарте говорят об этой ситуации?