Будет ли компилятор С++ оптимизировать неиспользуемое возвращаемое значение?C++

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

Сообщение Anonymous »

Если у меня есть функция, которая возвращает объект, но это возвращаемое значение никогда не используется вызывающей стороной, оптимизирует ли компилятор копию? (Возможно, ответ «всегда/иногда/никогда»).

Элементарный пример:

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

ReturnValue MyClass::FunctionThatAltersMembersAndNeverFails()
{
//Do stuff to members of MyClass that never fails
return successfulResultObject;
}

void MyClass::DoWork()
{
// Do some stuff
FunctionThatAltersMembersAndNeverFails();
// Do more stuff
}
В этом случае будет ли вообще скопирован объект ReturnValue? Его вообще строят? (Я знаю, что это, вероятно, зависит от компилятора, но давайте сузим это обсуждение до популярных современных.)

РЕДАКТИРОВАТЬ: Давайте немного упростим это, поскольку здесь нет В общем случае, похоже, не существует консенсуса. Что, если ReturnValue является целым числом и мы возвращаем 0 вместо SuccessResultObject?

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

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

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

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

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

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