Лет 7 назад я придумал как можно проверять значение int за O(1). Тогда я подумал что можно просто разделить программу на одинаковые по размеру блоки и прыгнуть на соответствующий. Мне не было известно об устройстве switch, да и ассемблер я не знал.
Уже спустя пару лет я понял, что современный switch как раз этим и занимается, но только вчера я проверил, что теория сошлась с практикой.
Виной всему послужил доклад с cppcon:
Посмотрев на switch со слайдов, я вспомнил про свою старую идею и полез на godbolt проверять.
Читать далее