Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
Тут и delete this

int main() {
auto plugin = *getNewPlugin();
// do something ...
} /* plugin будет убит автоматом, без всяких вызовов plugin.free() */
По сути: моя претензия была не к delete this, а к его оформлению. В методе free должен быть только delete this (плюс страшный комент на тему «сюда больше ничего не писать»), вся остальная логика — в деструкторе (который будет этим delete вызвано).
Как быть если компилятор не поддерживает интерфейсы с нулевым смещением VMT