Я экспериментировал с деструкторами в С++ с этим фрагментом кода:
#include <iostream>
struct temp
{
~temp() { std::cout << "Hello!" << std::endl; }
};
int main()
{
temp t;
t.~temp();
}
Я вижу, что "Привет!" печатается дважды. Не следует ли снова вызывать вызов деструктора объекту и деструктору, когда он выходит за рамки? Или есть какая-то другая концепция?
(Я не собираюсь делать это на практике. Я просто пытаюсь понять, что происходит здесь.)