当 Package 在未定义结构上使用指针的类C API时,我通常使用带有自定义删除器的std::unique_ptr来处理资源。偶尔,C API将把整数ID而不是指针赋予资源。我想知道处理这些的最佳实践是什么。我是否应该重写一个类似于std::unique_ptr的类,只是为了处理ID而不是指针?我是否应该为这些ID动态分配内存,以获得可以传递给std::unique_ptr的指针?我是否应该将ID重新解释为指针?或者(希望)有更好的解决方案吗?
std::unique_ptr
3pmvbmvn1#
虽然你可以(ab)使用std::unique_ptr来实现这一点,但编写自己的模板类似乎更清晰也更简单。你可以决定删除器是类型的一部分(如unique_ptr)还是构造函数参数(如shared_ptr)。你可能还希望一些定制类直接在句柄上执行有意义的操作(复制,索引等)。
1条答案
按热度按时间3pmvbmvn1#
虽然你可以(ab)使用std::unique_ptr来实现这一点,但编写自己的模板类似乎更清晰也更简单。你可以决定删除器是类型的一部分(如unique_ptr)还是构造函数参数(如shared_ptr)。你可能还希望一些定制类直接在句柄上执行有意义的操作(复制,索引等)。