Здравствуйте, fk0, Вы писали:
fk0> Интересно знать, в чём смысл такого дизайна? И почему нельзя просто добавить.
Этот код — часть большого plugin-based проекта.
Эти интерфейсы — это интерфейсы для написания плагинов с их использованием. Плагины могут быть написаны с
использованием разных компиляторов и даже разных языков (порядок работы чем-то напоминает COM).
Добавляемый в такой интерфейс виртуальный деструктор вынужден быть inline, а это при такой организации кода
недопустимо (я думаю вы и сами уже догадались почему).
Для разрушения объектов предусмотрена специальная функция-деструктор, которая гарантированно уничтожит объект
там же, где он создавался.
fk0> Через прагму запретить все варнинги для данной одной конкретной строчки (где он возникает) ? fk0>Только боюсь не выйдет, т.к. ранние версии GCC не умели _Pragma("GCC diagnostic ignore \"что-надо""). fk0>И через #pragma не умели.