相关疑难解决方法(0)

具有std :: atomic成员变量的类的复制构造函数/赋值运算符出错

我有一个类似下面的课程.

#include <atomic>

static const long  myValue = 0;

class Sequence
{

public:

    Sequence(long initial_value = myValue) : value_(initial_value) {}


private:

     std::atomic<long> value_;
};

int main()
{
         Sequence firstSequence;
         Sequence secondSequence = firstSequence;
         return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到这样的编译错误,

test.cpp:21:36: error: use of deleted function ‘Sequence::Sequence(const Sequence&)’
test.cpp:5:7: error: ‘Sequence::Sequence(const Sequence&)’ is implicitly deleted because the default definition would be ill-formed:
test.cpp:5:7: error: use of deleted function ‘std::atomic<long int>::atomic(const std::atomic<long int>&)’
Run Code Online (Sandbox Code Playgroud)

这是默认的复制构造函数,赋值opertaor在这种情况下不起作用吗?

PS:我使用的是gcc 4.6.3版

c++ multithreading atomic c++11

22
推荐指数
4
解决办法
1万
查看次数

C++ - 如何初始化原子数组?

array< atomic_size_t, 10 > A;
Run Code Online (Sandbox Code Playgroud)

无论是atomic_init(A,{0})A = {ATOMIC_VAR_INIT(0)}似乎工作,返回一个难以理解的错误.你如何将一个原子数组初始化为0?

即使是循环,在每一步更新数组的一个元素也不起作用.如果我们不能初始化原子数组的目的是什么?

我还想补充一点,我的数组的实际大小是巨大的(在示例中不是10),所以我需要直接初始化.

c++ arrays atomic c++11

6
推荐指数
2
解决办法
7147
查看次数

标签 统计

atomic ×2

c++ ×2

c++11 ×2

arrays ×1

multithreading ×1