使用已删除的函数 - std :: atomic

jav*_*red 4 c++ gcc

这是我在.h文件中的声明:

static std::atomic<int> OrdersExecutorIdCounter;
Run Code Online (Sandbox Code Playgroud)

这是从.cpp文件启动的:

std::atomic<int> ActionBasedOrdersExecutor::OrdersExecutorIdCounter = 0;
Run Code Online (Sandbox Code Playgroud)

它在VC++中编译得很好,但是在gcc 4.8中我得到了这个错误:

error: use of deleted function ‘std::atomic<int>::atomic(const std::atomic<int>&)’
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

Raf*_*zuk 10

您可以直接初始化原子变量,不需要删除复制构造函数,例如:

std::atomic<int> ActionBasedOrdersExecutor::OrdersExecutorIdCounter{0};
Run Code Online (Sandbox Code Playgroud)