std :: unique_ptr в классе, попытка сослаться на ошибку удаленной функции - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь использовать вектор смарт-указателя, который является типом int в классе, но выдает ошибку «попытка ссылки на удаленную функцию»:

class Object
    {
        public:
            std::vector<std::unique_ptr<int>> vec;
    };

Когда я создаю интеллектуальный указатель в функции в том же классе (заголовочный файл) или в другой функции это не выдает ошибку

void test()
    {
        std::vector<std::unique_ptr<int>> vec;
    }

Я думаю, что проблема может заключаться в копировании в вектор, потому что когда я создаю только умный указатель без вектора, это не не дать ошибку. Честно говоря, я не мог ничего попробовать, потому что не мог найти ничего, чтобы попробовать. Спасибо.

1 Ответ

0 голосов
/ 07 апреля 2020

Спасибо всем за ответы, я решил проблему. Удивительно для меня, это было о (dllexport) и (dllimport). Я не знал, что они вызывают копирование. Я переместил команды dll внутрь класса, чтобы предотвратить наличие вектора с указателем smart (dllexport) или (dllimport).

...