Я знаю, что вызов удалить это в функции члена сама по себе не является UB. На самом деле, компилятор делает то же самое, когда один вызывает удаление ptr , Ptr является указателем на полиморфный объект (посмотрите). Это можно увидеть путем изучения выходов -fdump-tree-all , где компилятор внедряет дополнительную виртуальную функцию, называемую Deletert Destructor в полиморфный класс 'vtable, что-то в этом роде:
Подробнее здесь: https://stackoverflow.com/questions/797 ... -allocator
Мобильная версия