Pseudo-destructor call does not destroy an object
Consider the following code: #include <iostream> typedef int t; t a=42; int main() { a.t::~t(); std::cout << a; //42 } I'm expected that a will be destroyed. But it is not true, why? How does do that pseudo-destructor call will be destroyed the object? Columbo But it is not true, why? §5.2.4/1: The only effect is the evaluation of the postfix-expression before the dot or arrow. Where the postfix-expression is the expression of the object for which the call takes place. Thus a pseudo destructor call, as a call to a trivial destructor, does not end the lifetime of the object it is applied to.