Следующий код принят 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'
Который правильный? Где в стандарте говорят об этой ситуации?