【发布时间】:2019-12-29 14:50:04
【问题描述】:
当我写这篇文章时,
std::atomic<int> * tmp = new std::atomic<int>();
g++ 编译器返回错误提示
invalid use of incomplete type "struct std::atomic<int>"
为什么会出现这个错误?我该如何逃避?我是否需要将原子变量包装在一个类中并使用它的指针?
智能指针也会发生同样的事情。
std::shared_ptr<std::atomic<int>> tmp = std::make_shared<std::atomic<int>> ();
【问题讨论】:
-
你需要
#include <atomic> -
... 和
#include<memory>为std::shared_ptr。 -
我已经包含了内存,但是没有原子。现在试试。
-
错误现在消失了。
标签: c++ pointers incomplete-type stdatomic