specialise `std::default_delete` for `std::shared_ptr`
问题 I have the idea to do this: namespace std { template<> class default_delete<IplImage> { public: void operator()(IplImage *ptr) const { cvReleaseImage(&ptr); } }; }; typedef std::shared_ptr<IplImage> IplImageObj; I didn't really found much information whether it is supported that I specialise default_delete and whether shared_ptr also uses default_delete by default. It works like intended with Clang 5.0.0. So, is it supported? What if the STL implementation has a different internal namespace?