Am I right in assuming that causing an object to be destructed from inside one of its member functions will cause undefined behavior? For example, by enlarging a vector that the object is an element of.
deletethis; can be done safely, so it's not automatically dangerous and not automatically undefined behaviour to cause an object to be destroyed inside one of its member functions: https://isocpp.org/wiki/faq/freestore-mgmt#delete-this