Предположим, что какой-то тип Foo
имеет перегруженный operator->
, который возвращает Bar*
:
struct Foo
{
Bar* operator->();
};
Если я хочу уничтожить возвращенный экземпляр Bar
на месте из Foo
класс, я могу написать следующее?
this->~Bar();
g ++ не нравится этот код.Это работает, если я напишу это:
(*this)->~Bar();
Не применимо ли в этом случае "правило рекурсивной пересылки"?Почему нет?