История изменений
Исправление unC0Rr, (текущая версия) :
Получение profile должно быть вынесено в отдельную функцию.
Так оно и вынесено: fetchFromCache/fetchFromServer. Но в императивном коде нужна промежуточная переменная, которая будет использоваться в if-ах.
Во-первых, любой современный оптимизирующий компилятор определяет время жизни переменных без проблем.
Но не в цпп. Иначе можно выоптимизировать какой-нибудь std::lock_guard напрочь и получить фейерверк багов.
оправдывать стиль кода (каким бы он ни был) преждевременной оптимизацией
Ха, а кто это делал? Я не утверждал, что такой код быстрее. Только что над ним легче проводить рассуждения как человеку (что с моей точки зрения намного важнее), так и компилятору, что потенциально может приводить к лучшей оптимизации последним. И это был лишь один из пунктов «за».
Исходная версия unC0Rr, :
Получение profile должно быть вынесено в отдельную функцию.
Так оно и вынесено: fetchFromCache/fetchFromServer. Но в императивном коде нужна промежуточная переменная, которая будет использоваться в if-ах.
Во-первых, любой современный оптимизирующий компилятор определяет время жизни переменных без проблем.
Но не в цпп. Иначе можно выоптимизировать какой-нибудь std::lock_guard напрочь и получить фейерверк багов.
оправдывать стиль кода (каким бы он ни был) преждевременной оптимизацией
Ха, а кто это делал? Я не утверждал, что такой код быстрее. Только что над ним легче проводить рассуждения как человеку, так и компилятору, что потенциально может приводить к лучшей оптимизации последним. И это был лишь один из пунктов «за».