Оптимизация компилятором 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

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