Экспорт класса с вектором-членом не копируемых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

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