powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / return str.c_str() не пашет
7 сообщений из 57, страница 3 из 3
return str.c_str() не пашет
    #39955539
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто акцентирую внимание на том что есть тривиальные чеки (типизация и разыменование wild/null)
указателя которую тоже статик-анализатор анализирует но ее-же (эту-же проверку) делает
компиллятор (практически всегда) и пишет варнинги.

Просто мы эти варнинги игнорируем.

Вобщем - толкую о том что не надо с придыханием говорить о статик-анализе. Большая часть проблем
была видна гораздо раньше. Просто в нее не смотрели.
...
Рейтинг: 0 / 0
return str.c_str() не пашет
    #39955548
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
mayton
В идеале компиллятор должен и выполнять эти функции.

Вообще-то не должен.
Задача компилятора генерировать код.

Спорное утверждение. Зачем тогда вообще компилятор выдаёт предупреждения, если можно просто генерировать бинарный код?

Anatoly Moskovsky
Функция анализа кода это задача IDE.

Не согласен. Задача IDE -- это текстовый редактор с поддержкой остальных инструментов: система сборки, взаимодействие с отладчиком, дополнительные аддоны.

Anatoly Moskovsky
Не говоря уже о том что очень много ложных срабатываний для работы с которыми нужна интерактивность. Т.е. компилятор тут никаким боком.

Какие ложные срабатывания? Тут задача тривиального анализа врапперов вокруг printf(). С ней справляется gcc, Студия тоже справляется но... через непотребство.
...
Рейтинг: 0 / 0
return str.c_str() не пашет
    #39955552
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я немного перепутал топики. Прошу прощения.
...
Рейтинг: 0 / 0
return str.c_str() не пашет
    #39955588
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Просто мы эти варнинги игнорируем.

всмысле игнорируем? Я если вижу красненькое, то сразу правлю. Это же лютое распиздяйство - красненькое игнорировать.
...
Рейтинг: 0 / 0
return str.c_str() не пашет
    #39956120
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
полудух,

Все компиляторы оптимизируют это устраняя копирование возвращаемого значения, и по факту функция работает с тем экземпляром куда результат присваивается в вызывающем коде (RVO).
А начиная с С++17 это обязательное поведение.

Так что можете спокойно возвращать строку.

а почему тут сработает?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class db_exception
{
  public:
    string msg;
    const char* m_stage;

    const char* what() const {
        return msg.c_str();
    }

    const char* stage() const {
        return m_stage;
    }
}
...
Рейтинг: 0 / 0
return str.c_str() не пашет
    #39956204
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудуха почему тут сработает?

https://en.cppreference.com/w/cpp/language/lifetime
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
return str.c_str() не пашет
    #39956476
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то многовато там фраз Undefined behavior... куда смотреть то?
объект всё ещё жив, но функция то внутри него оживает только в момент вызова и заканчивается по достижении }
а потом снова оживает новая ф-я в момент вызова
т.е. она не отличается от обычной ф-и в этом плане
...
Рейтинг: 0 / 0
7 сообщений из 57, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / return str.c_str() не пашет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]