Poco SharedPtr 智能指针处理数组方式

原文链接

Poco SharedPtr 智能指针处理数组过程中,遇到些问题,参考官方文档调试,总是报错,查看源码之后,终于发现了问题, 发现很多问题,在有源码的情况下,通过源码都可以自行解决,可能官方文档很久没有更新的缘故。 希望以后多多看源码

template <class C>  
class ArrayReleasePolicy  
{  
public:  
    static void release(C* pObj)  
        /// Delete the object.  
        /// Note that pObj can be 0.  
    {  
        delete [] pObj;  
    }  
}; 
char* pStr = new char[100]; 
SharedPtr<char, Poco::ReferenceCounter, ArrayReleasePolicy> p(pStr); 

上述的使用官方文档提供的案例是错误的, 因为template 要求提供数据类型

template <class C>  class ArrayReleasePolicy 

正确的处理方式应该是:

char* pStr = new char[100]; 
SharedPtr<char, Poco::ReferenceCounter, ArrayReleasePolicy<char>> p(pStr); 

你可能感兴趣的:(C++,分享文章)