gpt4 book ai didi

c++ - 为什么存储到原子 unique_ptr 会导致崩溃?

转载 作者:太空狗 更新时间:2023-10-29 19:48:07 25 4
gpt4 key购买 nike

代码在 i7-4790 处理器 (x86-64) 上的 VC++2013 (v120) 下编译没有问题。

int main()
{
std::atomic<std::unique_ptr<int>> p;
p.store(std::make_unique<int>(5));
}

一旦 main() 返回,我就会崩溃:

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

这是怎么回事?

最佳答案

您不能用 std::unique_ptr 实例化 std::atomiccppreference

std::atomic may be instantiated with any TriviallyCopyable type T. std::atomic is neither copyable nor movable.

还有一个 std::unique_ptr不可平凡复制

The class satisfies the requirements of MoveConstructible and MoveAssignable, but not the requirements of either CopyConstructible or CopyAssignable.

你可以使用 std::shared_ptr确实有 free functions defined to allow you to have atomic stores and loads

关于c++ - 为什么存储到原子 unique_ptr 会导致崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33153514/

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