如何检测何时需要调用'drop'?

ide*_*n42 7 memory-management rust

当诸如Vecrun之类的类型时truncate,它们会调用ptr::drop_in_place向量的每个成员.

事实证明这不是原始类型(如int,float等)的性能问题,因为drop调优已经过优化.

对于更多涉及的容器类型(我为自己编写的容器类型),迭代元素可能不是那么简单(并且可能并不总是被优化掉).

有没有办法检查类型是否具有丢弃特征,因此在这种情况下可以避免访问所有成员?

小智 5

std::intrinsics::needs_drop 仍然不稳定,但如果你可以处理,这是检查这个的最好方法.