C++. Копирующий конструктор

Пишу структуру данных. Вот какие там конструкторы:

        vector() {
            CurrentData = Alloc().allocate(1);
            FutureData = Alloc().allocate(2);
            Capacity = 1;
        }

        explicit vector(std::size_t n) {
            Capacity = 1;
            while (Capacity < n) {
                Capacity *= 2;
            }
            Size = n;
            CurrentData = Alloc().allocate(Capacity);
            FutureData = Alloc().allocate(2 * Capacity);
        }

        vector(std::size_t n, const T & value) {
            Capacity = 1;
            CurrentData = Alloc().allocate(Capacity);
            FutureData = Alloc().allocate(2 * Capacity);
            for (std::size_t i = 0; i < n; i++) {
                push_back(value);
            }
        }

        vector & operator=(const vector & other) {
            Capacity = other.Capacity;
            Size = other.Size;
            CurrentData = Alloc().allocate(Capacity);
            FutureData = Alloc().allocate(2 * Capacity);
            for (std::size_t i = 0; i < Size; i++) {
                CurrentData[i] = other.CurrentData[i];
                FutureData[i] = other.FutureData[i];
            }
            return *this;
        }

        vector & operator=(vector &&) noexcept = default;

Однако при попытке вызвать конструктор в форме копирующего оператора присваивания вылазит это:

call to implicitly-deleted copy constructor of 'vector'

Что у меня не так?


Ответы (0 шт):