我想为net-snmp C库struct snmp_pdu对象实现RAII机制。
该对象是使用一个名为struct snmp_pdu* snmp_pdu_create(int type)的方法创建的,并由一个方法void snmp_free_pdu(struct snmp_pdu *obj)发布。
我所做的是扩展auto_ptr以调用析构函数中的libname_free_obj方法。以下是代码:
class auto_snmp_pdu : public std::auto_ptr<snmp_pdu>
{
public:
virtual ~auto_snmp_pdu()
{
snmp_free_pdu(get());
}
};是上述相关的?
编辑
我不能使用unique_ptr,因为我使用的是g++的旧版本,而且我没有被授权更新它。
https://stackoverflow.com/questions/45478589
复制相似问题