c++ 类似于std::unique_ptr的资源管理,但用于标识符而不是指针

a2mppw5e  于 2023-04-01  发布在  其他
关注(0)|答案(1)|浏览(91)

当 Package 在未定义结构上使用指针的类C API时,我通常使用带有自定义删除器的std::unique_ptr来处理资源。
偶尔,C API将把整数ID而不是指针赋予资源。我想知道处理这些的最佳实践是什么。我是否应该重写一个类似于std::unique_ptr的类,只是为了处理ID而不是指针?我是否应该为这些ID动态分配内存,以获得可以传递给std::unique_ptr的指针?我是否应该将ID重新解释为指针?或者(希望)有更好的解决方案吗?

3pmvbmvn

3pmvbmvn1#

虽然你可以(ab)使用std::unique_ptr来实现这一点,但编写自己的模板类似乎更清晰也更简单。你可以决定删除器是类型的一部分(如unique_ptr)还是构造函数参数(如shared_ptr)。你可能还希望一些定制类直接在句柄上执行有意义的操作(复制,索引等)。

相关问题