Ошибка с конструктором копирования/оператором присваивания для класса, имеющего стандартную ::атомарную переменную-член

У меня есть класс, как показано ниже.

#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;
}

Я получаю такую ​​ошибку компиляции,

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>&)’

Конструктор копирования по умолчанию и оператор присваивания в таком случае не работают?

PS :Я использую gcc версии 4.6.3

20
задан polapts 17 August 2012 в 09:15
поделиться