gpt4 book ai didi

c++ - 从原始指针构造时 shared_ptr 是否分配?

转载 作者:行者123 更新时间:2023-11-27 23:36:23 26 4
gpt4 key购买 nike

据我所知,shared_ptr 包含一个指向控制 block 的指针,该控制 block 包含原始指针强计数和弱计数。

我处于需要无锁分配的情况,所以我可以从分配内存的池中分配一个原始指针,然后使用自定义删除器创建一个唯一指针以将其放回池中,到目前为止好。

但是,在 shared_ptr 的情况下,如果我使用这些原始指针和自定义分配器之一构造一个共享指针,它会在那个点分配控制 block 吗?

如果是,有没有办法以无锁方式为控制 block 提供内存?

最佳答案

In the case of a shared_ptr however if I construct a shared pointer with one of these raw pointers and custom allocators does it allocate the control block at that point?

是的。

If it does is there a way to provide the memory for the control block in a lock-free way?

shared_ptr 的构造函数具有接受自定义分配器的重载。

引用some shared_ptr documentation .

(我不是很清楚whether the deleter will also be allocated by your custom allocator。)

关于c++ - 从原始指针构造时 shared_ptr 是否分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58918919/

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