const reference in/out warning
От: Dair Россия http://dair.spb.ru
Дата: 10.12.13 09:23
Оценка:
Есть функция типа такой:

const ValueObject& MyClass::getSavedObject(const KeyObject& id, const ValueObject& defaultValue) const
{
    std::map<KeyObject, ValueObject>::const_iterator it = storedObjects.find(id);
    if (it != storedObjects.end())
    {
        return it->second;
    }
    return defaultValue;
}


Компилятор выдаёт warning в финальном return: "Returning reference to local temporary object".
Я понимаю, что имеется в виду, но я же нигде не ухудшаю область видимости — какой объект передали, тот и возвращаем.

Редуцируя до функции типа
const ValueObject& foo(const ValueObject& param)
{
    return param;
}


Как писать подобные конструкции, не вызывая warning?
С уважением,
Владимир Лебедев-Шмидтгоф
Санкт-Петербург, РФ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.