LINUX.ORG.RU

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

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

Получение profile должно быть вынесено в отдельную функцию.

Так оно и вынесено: fetchFromCache/fetchFromServer. Но в императивном коде нужна промежуточная переменная, которая будет использоваться в if-ах.

Во-первых, любой современный оптимизирующий компилятор определяет время жизни переменных без проблем.

Но не в цпп. Иначе можно выоптимизировать какой-нибудь std::lock_guard напрочь и получить фейерверк багов.

оправдывать стиль кода (каким бы он ни был) преждевременной оптимизацией

Ха, а кто это делал? Я не утверждал, что такой код быстрее. Только что над ним легче проводить рассуждения как человеку (что с моей точки зрения намного важнее), так и компилятору, что потенциально может приводить к лучшей оптимизации последним. И это был лишь один из пунктов «за».

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

Получение profile должно быть вынесено в отдельную функцию.

Так оно и вынесено: fetchFromCache/fetchFromServer. Но в императивном коде нужна промежуточная переменная, которая будет использоваться в if-ах.

Во-первых, любой современный оптимизирующий компилятор определяет время жизни переменных без проблем.

Но не в цпп. Иначе можно выоптимизировать какой-нибудь std::lock_guard напрочь и получить фейерверк багов.

оправдывать стиль кода (каким бы он ни был) преждевременной оптимизацией

Ха, а кто это делал? Я не утверждал, что такой код быстрее. Только что над ним легче проводить рассуждения как человеку, так и компилятору, что потенциально может приводить к лучшей оптимизации последним. И это был лишь один из пунктов «за».