不是说类的虚构函数不应该抛出异常,所以这个try catch 好像没必要吧
class WTSObject
{
public:
WTSObject() :m_uRefs(1){}
virtual ~WTSObject(){}
public:
inline uint32_t retain(){ return m_uRefs.fetch_add(1) + 1; }
virtual void release()
{
if (m_uRefs == 0)
return;
try
{
uint32_t cnt = m_uRefs.fetch_sub(1);
if (cnt == 1)
{
delete this;
}
}
catch(...)
{
}
}
inline bool isSingleRefs() { return m_uRefs == 1; }
inline uint32_t retainCount() { return m_uRefs; }
protected:
volatile std::atomic<uint32_t> m_uRefs;
};
--
FROM 14.127.25.*