Обработка необходимого оператора удаления в виртуальных деструкторах в автономных средах.C++

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

Сообщение Anonymous »

Я поддерживаю библиотеку, предназначенную для сред с ограниченными ресурсами на микроконтроллерах без ОС: emio. Эта библиотека C++20 использует виртуальное наследование и, следовательно, имеет виртуальные деструкторы.
Пользователь столкнулся с новой проблемой в автономной среде без кучи:
< blockquote>
неопределенная ссылка на `operator delete(void*, unsigned int)' #99

Основная причина проблемы объясняется здесь: Почему для виртуальных деструкторов требуется оператор удаления.
Мой вопрос:
Могу ли я решить проблема пользователя как-то? Может быть, предоставив уничтожающее средство удаления для всех классов? Или пользователю необходимо реализовать свой собственный глобальный метод удаления (например, вызов std::terminate), который завершится с ошибкой, если он случайно использует выражения use new/delete?
Кроме того, почему компоновщик этого не делает? удалить эту функцию, даже если она никогда не вызывается?
Примечание: я не хочу исключать пользователей, которые используют функцию new/delete и работают в неавтономных средах.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-environ
Ответить

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

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

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

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

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