gpt4 book ai didi

c++ - 自动释放资源的通用句柄

转载 作者:搜寻专家 更新时间:2023-10-31 02:21:31 25 4
gpt4 key购买 nike

<分区>

STL或boost中是否有通用句柄类?我正在与一些具有 alloc、release api 的 C 代码交互。我想使用句柄来自动释放资源。

例如:

some_resource_type rsc;  
int err = capi_alloc(&rsc);
if (err != NOERR) {
// .. do work with resource

capi_release(rsc);
}

我想要类似的东西

// looking for this class
class wrapper {
public:
wrapper(T obj, void (del)(T&)):obj(obj_),del_(del) {}
~wrapper() {_del(obj);}
T obj_;
void (del_)(T&);
};

some_resource_type rsc;
int err = capi_alloc(&rsc);
wrapper w;
if (err != NOERR) {
w = wrapper(rsc, &capi_release);
// .. do work with resource
}
// then auto release

在 STL 或 boost 中有类似的东西吗?它本质上是一些具有自定义创建和自定义删除的独特指针实现。

附言我还没有编译包装器代码,它可能无法工作。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com