c++ - 具有原子变量的指针所有权

标签 c++ pointers c++11 atomic

“包含”指针的原子变量是否拥有指针的所有权?

考虑以下片段:

{
    std::atomic<Foo*> bar(new Foo());
}

// `bar' went out of scope, did it delete pointer to instance of Foo?

当然,我可以自己导出和删除它,或者以其他方式解决它;但这不是重点。

如果有的话,这里定义的行为是什么?

最佳答案

不,std::atomic 唯一保证的是对象不会发生数据竞争。所以你将释放指针指向你自己的内存。

如果你想要一个托管的动态内存容器,那么要么使用 unique_ptrshared_ptr .

关于c++ - 具有原子变量的指针所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21410805/

相关文章:

c++ - 是否可以在 C++ 中声明具有不同类型的变量?

c++ - 错误 C2440 : '=' : cannot convert from 'const BWAPI::UnitType *' to 'BWAPI::Type *'

c++ - cv::warpAffine - 负图像坐标

c - 为什么以及何时需要双指针?

c++ - 在 C++ 11 中使用函数指针

c++ - 应用程序和 exe 之间的类大小更改

c - c中的双分号是什么意思?

c - C语言中如何获取指向指针的指针?

c++ - 如何正确实现 -> 和 (*)。这样它们的行为就像 -> 和 (*)。在迭代器中

c++ - 为什么 CMake 似乎不使用 add_compile_options 命令应用 -pthread ?