When I write
std::shared_ptr<MyType> x;
x is initialized with an empty shared pointer to a nullptr. But I would like it to automatically call the default (or some other designated constructor) of MyType. I know, that I could just write:
std::shared_ptr<MyType> x = std::maked_shared<MyTYpe>();
but sometimes people forget and then you run into trouble, so enforcing this by the compiler would be nice.