The following code compiled with MSVC9.0 runs and outputs Destructor four times, which is logical.
#include class SomeClass
p->~SomeClass(); //line 5 p->CommitSuicide(); //line 6
p->~SomeClass(); //line 5
p->CommitSuicide(); //line 6
Line (6) definitely invokes Undefined Behaviour.
That is, is invocation of another member after the explicit call of the destructor allowed (defined)?
No! Your assumption is correct.