gpt4 book ai didi

c++ - boost::共享_??对于非指针资源

转载 作者:太空狗 更新时间:2023-10-29 23:42:17 25 4
gpt4 key购买 nike

基本上我需要对某些不直接等同于指针/地址语义的资源(如整数索引)进行引用计数;基本上我需要传递资源,并在计数达到零时调用某些自定义函数。此外,对资源进行读/写访问的方式不是简单的指针取消引用操作,而是更复杂的操作。我认为 boost::shared_ptr 不适合这里的要求,但也许我错过了一些我可能会使用的其他 boost 等效类?

我需要做的事的例子:

struct NonPointerResource
{
NonPointerResource(int a) : rec(a) {}

int rec;
}

int createResource ()
{
data BasicResource("get/resource");
boost::shared_resource< MonPointerResource > r( BasicResource.getId() ,
boost::function< BasicResource::RemoveId >() );
TypicalUsage( r );
}
//when r goes out of scope, it will call BasicResource::RemoveId( NonPointerResource& ) or something similar


int TypicalUsage( boost::shared_resource< NonPointerResource > r )
{
data* d = access_object( r );
// do something with d
}

最佳答案

在堆上分配 NonPointerResource,然后像往常一样给它一个析构函数。

关于c++ - boost::共享_??对于非指针资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057522/

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