当我知道插入的指针时,如何从boost::ptr_set
删除? (我有一个指向插入的类对象的 this 指针。)
这是一个人为的例子来展示我想要做的事情:
boost::ptr_set<ServerConnection1> m_srv_conns1;
ServerConnection1 *this_ptr;
m_srv_conns1.insert(this_ptr = new ServerConnection1);
m_srv_conns1.erase(this_ptr); //It won't work!
指向插入对象的this
指针,如何告诉boost::ptr_set
erase(this)
?注意:我不再在插入的对象中,但我有一个指向它的指针。
其中一条评论是我没有满足boost::ptr_set
的所有要求。有什么要求?
我认为提供< operator
可以解决问题吗?
m_srv_conns1.erase(this_ptr);
更改为m_srv_conns1.erase(*this_ptr);
ServerConnection1
类中: bool operator<(const ServerConnection1 & sc1) const
{
return (this < &sc1); //Pointer comparison
}
答案 0 :(得分:0)
尝试m_srv_conns1.erase(*this_ptr);
。