class Class {
public:
Class() {std::cout << "Constructor" << '\n';}
~Class() {std::cout << "Destructor" << '\n';}
};
int main() {
std::cout<<"\nNew shared_ptr:\n";
Class C;
std::shared_ptr<Class> ptr(&C);
}
After running I have:
New shared_ptr:
Constructor
Destructor
Destructor
Why is that? Why is the destructor called twice?