ub по сути в любом языке получается из-за того что какая-то часть кода нарушает инварианты. Разделение кода на safe и unsafe позволяет свести эту часть до небольшой прослойки
так раст защищает или нет? Почему он это допустил?
Rust защищает в safe коде, которого в проекте всегда большинство. Это не идеальная защита, но лучше, чем c++ который совсем не помогает с управлением памятью и не разделяет код на safe/unsafe
Rust защищает в safe коде, которого в проекте всегда большинство. Это не идеальная защита, но лучше, чем c++ который совсем не помогает с управлением памятью и не разделяет код на safe/unsafe
shared_ptr/unique_ptr/weak_ptr - части стандарта C++. Как это "не помогает"? :)
ub по сути в любом языке получается из-за того что какая-то часть кода нарушает инварианты. Разделение кода на safe и unsafe позволяет свести эту часть до небольшой прослойки
Rust защищает в safe коде, которого в проекте всегда большинство. Это не идеальная защита, но лучше, чем c++ который совсем не помогает с управлением памятью и не разделяет код на safe/unsafe
в плюсах в тех местах, где сейф у раста, тоже нет багов