这是`std :: mem :: drop`的有效实现吗?

时间:2018-03-16 05:21:12

标签: memory-management rust destructor

根据The Rust Programming Language, ch15-03std::mem::drop获取一个对象,获得其所有权,并调用其drop函数。

这是代码的作用:

fn my_drop<T>(x: T) {}

fn main() {
    let x = 5;
    let y = &x;
    let mut z = 4;

    let v = vec![3, 4, 2, 5, 3, 5];

    my_drop(v);
}

这是std::mem::drop的作用吗?它是否执行除此之外的任何其他清理任务?

1 个答案:

答案 0 :(得分:8)

让我们来看看source

#[inline]
#[stable(feature = "rust1", since = "1.0.0")]
pub fn drop<T>(_x: T) { }

#[inline]向编译器提示应该内联函数。标准库使用#[stable]来标记稳定通道上可用的API。否则,它真的只是一个空功能!当_x退出范围时drop返回,其析构函数运行;在Rust中没有其他方法可以隐式执行清理任务。

相关问题