Экспорт класса с вектором-членом не копируемыхC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Экспорт класса с вектором-членом не копируемых

Сообщение Anonymous »

У меня есть необратимый класс и еще один, который держит вектор: < /p>

Код: Выделить всё

  class NonCopiable
{
NonCopiable() {};

NonCopiable(const NonCopiable&) = delete;
NonCopiable& operator=(const NonCopiable&) = delete;
NonCopiable(NonCopiable&&) noexcept = default;
NonCopiable& operator=(NonCopiable&&) noexcept = default;
};

class Exported
{
std::vector m_vector;
};
Все в порядке, пока я не хочу экспортировать экспортированный класс :

Код: Выделить всё

  class __declspec(dllexport) Exported
{
std::vector m_vector;
};
< /code>
Это дает ошибку компиляции < /p>
'NonCopiable &NonCopiable::operator =(const NonCopiable &)': attempting to reference a deleted function
< /code>
Что происходит, когда класс экспортируется? Почему проблема возникает только в том случае, если член данных является коллекцией, а не простой членом? (например, класс __declspec (dllexport) exported {non -nocapiable m_member;}; 
в порядке)
и, наконец, есть решение для этого?
Использование C ++ 2022

Подробнее здесь: https://stackoverflow.com/questions/797 ... n-copyable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»