Код: Выделить всё
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
Мобильная версия