在某些情况下,我想让我的结构只被以下的人遗忘 std::mem::forget但不能被丢弃。如果不小心被编译器生成了丢弃代码,我希望得到一个编译器错误。所以可能会有类似
std::mem::forget
impl Drop for MyStruct { #[must_not_use] fn drop(&mut self) { } }
这就像 弃用 但更严格地说,是产生一个错误而不是警告。
目前还没有编译时的解决方案。通常的方法是 panic!() 在 drop.
panic!()
drop