Оптимизация компилятором C++ передаваемых аргументовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Оптимизация компилятором C++ передаваемых аргументов

Сообщение Anonymous »

Я использую модуль журналирования, в котором можно включать/отключать создание отчетов во время выполнения. Обычно звонки выглядят примерно так:

Код: Выделить всё

WARN(
"Danger Will Robinson! There are "
+ boost::lexical_cast(minutes)
+ " minutes of oxygen left!"
);
Я использую встроенную функцию для WARN, но мне любопытно, какая оптимизация происходит за кулисами — оценка аргументов на протяжении всего процесса программа будет дорогостоящей. Функция WARN выглядит примерно так:

Код: Выделить всё

bool WARNINGS_ENABLED = false;
inline void WARN(const string &message) {
if (!WARNINGS_ENABLED) {
return;
}
// ...
}
Учитывая, что построение строкового аргумента не имеет побочных эффектов, оптимизирует ли компилятор его? Требуется ли определенный уровень оптимизации ( в g++ для некоторого x)?

Подробнее здесь: https://stackoverflow.com/questions/282 ... -arguments
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»