4 ms·
Hmm, how would that look like? Like this? if ((val < min) || (val >= max)) { __builtin_unreachable(); } switch (val) { ... } I
by flohofwoe 3y ago
Hmm, how would that look like? Like this?
if ((val < min) || (val >= max)) {
__builtin_unreachable();
}
switch (val) {
...
}
I haven't actually tried that, but if it works as intended it would actually be better yeah (not really in the case where I'm using it, because I'm switching on an integer, not an enum).
- planede 3y agoMore like: switch (e) { case A: foo(); break; case B: bar(); break; } std::unreachable(); instead of: switch (e) { case A: foo(); break; case B: bar(); break; default: std::unreachable(); } The former is more likely to produce a warning if there is an enumeration C that you forgot to handle, or you added an enumeration C and missed a switch-case to update. edit: duh, it's supposed to be returns here instead of breaks.
- flohofwoe 3y agoBut then all case branches hit the std::unreachable. How can that work in practice?
- gravescale 3y agoI think it's supposed to be a return not a break.