Является ли допустимым конструкция delete this?
Собственно, вопрос в заголовке. Более подробно, рассмотрим, к примеру, такой код:
class A
{
public:
A () = default;
~A () = default;
void destroy_me ()
{
delete this;
}
};
int main ()
{
A *a = new A ();
a->destroy_me ();
return 0;
}
Корректен ли код выше ? Считается ли это стандартом C++ как UB ? Просьба с цитатами или пунктами стандарта, сам пока не смог разобраться.
Источник: Stack Overflow на русском