Операторы переключения в следующих двух функциях < /p>
int foo(int value) {
switch (value) {
case 0:
return 0;
case 1:
return 0;
case 2:
return 1;
}
}
int bar(int value) {
switch (value) {
case 0:
case 1:
return 0;
case 2:
return 1;
}
}
< /code>
Компиляция в разные сборки в изданиях x86-64 и RISC-V компилятора GNU C, когда не оптимизируется. < /p>
Почему? Есть ли способ это подорвать? Я использую постоянные лямбдасы в шаблонах функций для программного генерации возвращаемых значений таких функций, как этот вывод, и они имеют гораздо больше инструкций по сборке, чем если бы я вошел и написал вручную всю обработку вывода и сделал все идентичные выходные передачи в одну цепь с компонентами.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... l-handling