这是我在.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>&)’
我该如何解决这个问题?
答案 0 :(得分:10)
您可以直接初始化原子变量,该变量不需要已删除复制构造函数,例如:
std::atomic<int> ActionBasedOrdersExecutor::OrdersExecutorIdCounter{0};
答案 1 :(得分:1)
您不需要(或想要)将原子整数初始化为0(int值将为全局初始化为0)。