Resharper C++ - не убирать переменную
От: _NN_  
Дата: 23.04.17 12:22
Оценка: 2 (1)
Есть следующий код:

void f(char const* str) {...}

void g()
{
 char const* p = "xyz";

 string s;
 if (abc)
 {
  s = "abc";
  p = s.c_str();
 }
 
 f(p);
}


Переменная 's' должна жить для того, чтобы указатель 'p' был валидным.
Решарпер предлагает объединить создание переменной 's' с инициализаций, что соответственно приведёт к тому, что код перестанет работать.

Возможно ли улучшить анализ кода, и не предлагать такого ?
Для начала хотя бы для std::basic_string.c_str.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Resharper C++ - не убирать переменную
От: zlrbt  
Дата: 24.04.17 12:59
Оценка:
Завел баг: https://youtrack.jetbrains.com/issue/RSCPP-19584
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.