Я видел код, который использует std::shared_ptr с пользовательским удалением, который проверяет аргумент для nullptr, например, MyClass, который имеет метод close() и построен с некоторым CreateMyClass:
auto pMyClass = std::shared_ptr<MyClass>(CreateMyClass(),
[](MyClass* ptr)
{
if(ptr)
ptr->close();
});
Имеет ли смысл тестировать ptr на неопределенность в deleter?
Может ли это случиться? как?