tgoop.com/random_rust_dev/72
Create:
Last Update:
Last Update:
У меня выработалась хорошая привычка сразу документировать safety требования и обоснования вокруг unsafe
кода.unsafe fn
- сразу пишу как не получить с ней UB.unsafe {}
- почему тут не будет UB. Для этого есть clippy lint clippy::undocumented_unsafe_blocks
. Также всегда советую делать #![forbid(unsafe_op_in_unsafe_fn)]
если нету #![forbid(unsafe)]
.
Но есть один случай, когда приходится писать
// SAFETY: Practically safe, but generally nope.
unsafe { ... }
И ничего тут не поделаешь. Можно сколько угодно протаскивать
unsafe
наверх, хоть до main
, но там придется сделать вот такой unsafe
блок.Что ж это за жестокая ирония и когда крабам приходится идти на трюки и соглашаться на "безопасно на практике" вместо полной гарантии безопасности?
Первый написавший правильный ответ в комментарии к посту заслужит почет и уважение.
BY Random Rust Dev
Share with your friend now:
tgoop.com/random_rust_dev/72