Custom deleters are also needed for simd aligned memory.
JUCE uses them to automatically release objective-c classes too
I’ve just started going through an old project to clean up ScopedPointer usage. I ended up doing e.g.
addAndMakeVisible ((myMember = std::make_unique<SomeComponent>()).get());
which seems a little more readable.