“包含”指针的原子变量是否拥有指针的所有权?
考虑以下片段:
{
std::atomic<Foo*> bar(new Foo());
}
// `bar' went out of scope, did it delete pointer to instance of Foo?
当然,我可以自己导出和删除它,或者以其他方式解决它;但这不是重点。
如果有的话,这里定义的行为是什么?
最佳答案
不,std::atomic
唯一保证的是对象不会发生数据竞争。所以你将释放指针指向你自己的内存。
如果你想要一个托管的动态内存容器,那么要么使用 unique_ptr或 shared_ptr .
关于c++ - 具有原子变量的指针所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21410805/