Предупреждение C4172: возврат ссылки на const std :: string, привязанный к локальной переменной. Насколько это безопасно?

Я как раз собирал один из наших проектов на работе и вижу, что была добавлена ​​новая функция:

const std::string& ClassName::MethodName() const
{
   return "";
}

Компилятор выдает предупреждение:

Предупреждение C4172: возвращаемый адрес локальной переменной или временной

Думаю, компилятор прав. Насколько безопасна эта функция?

Обратите внимание, что функция не возвращает const char * , что было бы нормально, поскольку строковые литералы имеют статическую продолжительность хранения. Он возвращает ссылку на const std :: string

7
задан Armen Tsirunyan 12 August 2011 в 11:18
поделиться