|
|
|
return str.c_str() не пашет
|
|||
|---|---|---|---|
|
#18+
Я просто акцентирую внимание на том что есть тривиальные чеки (типизация и разыменование wild/null) указателя которую тоже статик-анализатор анализирует но ее-же (эту-же проверку) делает компиллятор (практически всегда) и пишет варнинги. Просто мы эти варнинги игнорируем. Вобщем - толкую о том что не надо с придыханием говорить о статик-анализе. Большая часть проблем была видна гораздо раньше. Просто в нее не смотрели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2020, 13:40:41 |
|
||
|
return str.c_str() не пашет
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky mayton В идеале компиллятор должен и выполнять эти функции. Вообще-то не должен. Задача компилятора генерировать код. Спорное утверждение. Зачем тогда вообще компилятор выдаёт предупреждения, если можно просто генерировать бинарный код? Anatoly Moskovsky Функция анализа кода это задача IDE. Не согласен. Задача IDE -- это текстовый редактор с поддержкой остальных инструментов: система сборки, взаимодействие с отладчиком, дополнительные аддоны. Anatoly Moskovsky Не говоря уже о том что очень много ложных срабатываний для работы с которыми нужна интерактивность. Т.е. компилятор тут никаким боком. Какие ложные срабатывания? Тут задача тривиального анализа врапперов вокруг printf(). С ней справляется gcc, Студия тоже справляется но... через непотребство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2020, 14:15:39 |
|
||
|
return str.c_str() не пашет
|
|||
|---|---|---|---|
|
#18+
Я немного перепутал топики. Прошу прощения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2020, 14:27:23 |
|
||
|
return str.c_str() не пашет
|
|||
|---|---|---|---|
|
#18+
mayton Просто мы эти варнинги игнорируем. всмысле игнорируем? Я если вижу красненькое, то сразу правлю. Это же лютое распиздяйство - красненькое игнорировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2020, 20:14:38 |
|
||
|
return str.c_str() не пашет
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky полудух, Все компиляторы оптимизируют это устраняя копирование возвращаемого значения, и по факту функция работает с тем экземпляром куда результат присваивается в вызывающем коде (RVO). А начиная с С++17 это обязательное поведение. Так что можете спокойно возвращать строку. а почему тут сработает? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 09:52:58 |
|
||
|
return str.c_str() не пашет
|
|||
|---|---|---|---|
|
#18+
полудуха почему тут сработает? https://en.cppreference.com/w/cpp/language/lifetime Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 12:24:19 |
|
||
|
return str.c_str() не пашет
|
|||
|---|---|---|---|
|
#18+
что-то многовато там фраз Undefined behavior... куда смотреть то? объект всё ещё жив, но функция то внутри него оживает только в момент вызова и заканчивается по достижении } а потом снова оживает новая ф-я в момент вызова т.е. она не отличается от обычной ф-и в этом плане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:02:02 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2017432]: |
0ms |
get settings: |
14ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
86ms |
get topic data: |
20ms |
get first new msg: |
11ms |
get forum data: |
5ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 335ms |
| total: | 582ms |

| 0 / 0 |
