LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Компилятор не делает вокруг этого оптимизаций, и выигрыш мы получаем потому что в unsafe этих проверок просто нет изначально.

На первом этапе - да. А на втором компилятор может убрать недоступный код на основании условий UB или заменить на более быстрый алгоритм. Например, for(int i=a; i!=b; i++) сразу выкидывать, если b меньше, чем a и внутри цикла нет побочных эффектов.

Исходная версия monk, :

Компилятор не делает вокруг этого оптимизаций, и выигрыш мы получаем потому что в unsafe этих проверок просто нет изначально.

На первом этапе - да. А на втором компилятор может убрать недоступный код на основании условий UB или заменить на более быстрый алгоритм. Например, for(int i=a; i!=b; i++) сразу выкидывать, если b меньше, чем a.