История изменений
Исправление wandrien, (текущая версия) :
Это не динамическая диспетчеризация, а говно на палочке. Где-то на гитхабе лежал стёбный калькулятор, который «складывает» числа при помощи блоков if (a == константа && b == константа) c = константа;
Вот это решение из той же оперы.
гораздо эффективнее
Только в нашем примере «говна на палках», чтобы он был реалистичным, веток case должно быть не три, а штук тридцать. А эффективный case на большинстве архитектур реализуется при помощи… перехода по вычислимому адресу.
Круг замкнулся.
https://godbolt.org/z/q8hTnEWox
Исходная версия wandrien, :
Это не динамическая диспетчеризация, а говно на палочке. Где-то на гитхабе лежал стёбный калькулятор, который «складывает» числа при помощи блоков if (a == константа && b == константа) c = константа;
Вот это решение из той же оперы.
гораздо эффективнее
Только в нашем примере «говна на палках», чтобы он был реалистичным, веток case должно быть не три, штук тридцать. А эффективный case на большинстве архитектур реализуется при помощи… перехода по вычислимому адресу.
Круг замкнулся.
https://godbolt.org/z/q8hTnEWox