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

时间:2014-09-19 18:55:48

标签: c++ gcc

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

static std::atomic<int> OrdersExecutorIdCounter;

这是从.cpp文件中启动的:

std::atomic<int> ActionBasedOrdersExecutor::OrdersExecutorIdCounter = 0;

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

error: use of deleted function ‘std::atomic<int>::atomic(const std::atomic<int>&)’

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:10)

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

std::atomic<int> ActionBasedOrdersExecutor::OrdersExecutorIdCounter{0};

答案 1 :(得分:1)

您不需要(或想要)将原子整数初始化为0(int值将为全局初始化为0)。