nullptr;
std::string bar(moo);
к чему приведет?
Это уб
такой случай никто не фиксил (и не сможет без лишних накладных расходов)
Это не УБ, это явный AV.
А AV — это?
Статические анализаторы наше всё
Да и в общем случае это нельзя пофиксить
Статический анализатор тут не поможет. Когда в рантайме CString делается из NULL, это было вполне нормально.
Конкретно в этом случае — поможет
Так что такое AV?
Ошибка 0xC0000005, Access violation.
Это называется UB :)
Нет. UB про другое.
Ну вот не совсем) Access violation - одна из вариаций его проявления
Вы не понимаете UB
ага, в линуксе такое найдите
CString в линуксе найдите.
каким боком CString к С++ относится?
CString найдите в стандарте
Вы мой тейк прочитайте. После замены CStringA на std::string, проект превратился в минное поле.
В С++ нет access violation
и что?) это конечно печально, но это не делает CString частью C++
Ну.. менять один класс на другой, если у них разные контракты, опасно. ¯\_(ツ)_/¯
"These things are defined; you're just looking in the wrong place for definitions." (c)
Обсуждают сегодня