Здравствуйте, wander, Вы писали:
fk0>> Интересно знать, в чём смысл такого дизайна? И почему нельзя просто добавить. W>Этот код — часть большого plugin-based проекта.
W>Эти интерфейсы — это интерфейсы для написания плагинов с их использованием. Плагины могут быть написаны с W>использованием разных компиляторов и даже разных языков (порядок работы чем-то напоминает COM). W>Добавляемый в такой интерфейс виртуальный деструктор вынужден быть inline,
А вот с этого момента поподробнее. Кто его вынуждает быть inline и каким способом???
В C++ такого не предусмотрено, чтоб кого-то вынуждать.
W>Для разрушения объектов предусмотрена специальная функция-деструктор, которая гарантированно уничтожит объект W>там же, где он создавался.
В каком смысле "там же"? И чем обычный деструктор кардинально отличается от спец. функции?
Мне кажется с точки зрения компилятора -- ни чем. В конечном счёте функция как функция. Когда
уже до машинного кода дошло.
Мне кажется, здесь речь о каком-то архитектурном паттерне, который нарушает стандарт в каких-то
частях, но пытаться что-то изменить уже поздно. Но я никак не понимаю, что за паттерн.