次のスイッチは、列挙型クラスのすべての項目をカバーしているのに、デフォルトのケースをコンパイルするのはなぜですか?そもそもこれが強い理由だと思いenum class
ました。
すべてのケースをカバーしていることを知っているのに、なぜデフォルトにしたいのかについて:これは私の将来の不注意(および他の同僚の不注意)から私を守ります
enum class E {
a,
b
};
int main()
{
E c = E::b;
switch (c) {
case E::a:
case E::b:
std::cout << "pass" << std::endl;
break;
default:
static_assert(false, "This explodes!");
}
}