Size: a a a

cxx.Дискуссионная

2020 March 06

C

Chuvi in cxx.Дискуссионная
а это кто
мы говорим только про баги управления памятью
эта проблема решается очень просто
источник

MB

Mikail Bagishov in cxx.Дискуссионная
Т-34 85
в плюсах в тех местах, где сейф у раста, тоже нет багов
но они не выделены явно.
источник

Т8

Т-34 85 in cxx.Дискуссионная
Mikail Bagishov
но они не выделены явно.
и что, от этого ты стал писать хуже?
источник

а

а это кто in cxx.Дискуссионная
Т-34 85
в плюсах в тех местах, где сейф у раста, тоже нет багов
не правда, в C++ ссылка может стать невалидной и привести к мемори багу

в safe коде в Rust такое невозможно благодаря борровчекеру
источник

MB

Mikail Bagishov in cxx.Дискуссионная
Т-34 85
и что, от этого ты стал писать хуже?
Мне становится тяжелее понять, есть ли у меня в коде UB или нет. В случае раста мне достаточно посмотреть на ансейф-блоки, их обычно немного. А в коде на плюсах вообще говоря UB может скрываться почти где угодно. Я вот не могу сходу вспомнить какую-ту нетривиальную функцию, которая была бы сейфовой например.
источник

а

а это кто in cxx.Дискуссионная
Mikail Bagishov
но они не выделены явно.
и это тоже да
источник

Т8

Т-34 85 in cxx.Дискуссионная
а это кто
не правда, в C++ ссылка может стать невалидной и привести к мемори багу

в safe коде в Rust такое невозможно благодаря борровчекеру
с хрена ли она "может"? Чудес не бывает
источник

Т8

Т-34 85 in cxx.Дискуссионная
Mikail Bagishov
Мне становится тяжелее понять, есть ли у меня в коде UB или нет. В случае раста мне достаточно посмотреть на ансейф-блоки, их обычно немного. А в коде на плюсах вообще говоря UB может скрываться почти где угодно. Я вот не могу сходу вспомнить какую-ту нетривиальную функцию, которая была бы сейфовой например.
если там нет UB, то откуда он возьмётся?
источник

MB

Mikail Bagishov in cxx.Дискуссионная
Т-34 85
с хрена ли она "может"? Чудес не бывает
Компилятор раста проверяет, что никогда не разыменовывается невалидная ссылка.
Компилятор плюсов нет.
источник

Т8

Т-34 85 in cxx.Дискуссионная
Mikail Bagishov
Компилятор раста проверяет, что никогда не разыменовывается невалидная ссылка.
Компилятор плюсов нет.
и что?
источник

FF

Flex Ferrum in cxx.Дискуссионная
Т-34 85
с хрена ли она "может"? Чудес не бывает
Ну, например:
std::list<SomeStruct> list;
list.push_back(SomeStruct{});
list.push_back(SomeStruct{});
auto& ref = list.front();
list.pop_front();
источник

MB

Mikail Bagishov in cxx.Дискуссионная
Т-34 85
если там нет UB, то откуда он возьмётся?
Очевидно неоткуда. Но почему ты решил, что в коде который я пишу никогда нет UB?
источник

Т8

Т-34 85 in cxx.Дискуссионная
Flex Ferrum
Ну, например:
std::list<SomeStruct> list;
list.push_back(SomeStruct{});
list.push_back(SomeStruct{});
auto& ref = list.front();
list.pop_front();
за такой код надо не только ноги отстреливать, но и руки отрывать
@h4cktill
источник

а

а это кто in cxx.Дискуссионная
Т-34 85
за такой код надо не только ноги отстреливать, но и руки отрывать
@h4cktill
почему?
источник

Т8

Т-34 85 in cxx.Дискуссионная
Mikail Bagishov
Очевидно неоткуда. Но почему ты решил, что в коде который я пишу никогда нет UB?
не, ну если дурачок... Тогда да, нет ни в чём уверенности, везде будет как в actix
источник

FF

Flex Ferrum in cxx.Дискуссионная
Т-34 85
за такой код надо не только ноги отстреливать, но и руки отрывать
@h4cktill
Всё бы ничего, но такой код может возникнуть неявно. В смысле, такая семантика.
источник

Т8

Т-34 85 in cxx.Дискуссионная
а это кто
почему?
учи плюсы
источник

Т8

Т-34 85 in cxx.Дискуссионная
Flex Ferrum
Всё бы ничего, но такой код может возникнуть неявно. В смысле, такая семантика.
ну, тогда ССЗБ
источник

а

а это кто in cxx.Дискуссионная
Т-34 85
учи плюсы
расскажи в чём проблема
источник

MB

Mikail Bagishov in cxx.Дискуссионная
Т-34 85
не, ну если дурачок... Тогда да, нет ни в чём уверенности, везде будет как в actix
лол, тогда примерно все C++ программисты дураки. Можешь ли ты например доказать, что в linux kernel нет UB? (или другом большом проекте по твоему выбору). С учетом того, что ранее там UB всплывали и создавали уязвимости
источник