我有一些代码循环和新闻一些指针并将它们存储在一个向量中:
std::vector<InputBox*> m_octets;
...
InputBox* octet = new InputBox(rect, title, touch_num);
m_octets.push_back(octet);
在类析构函数I for_each
上m_octets
,并为每个指针调用析构函数。我认为这一切都很好。它全部编译并且单元测试通过。问题是Gimpel的PC-lint不喜欢它。它看到`octet'是一个尚未释放的保管指针(警告429)。我当然可以禁用该警告,但手册(11.2.1)表明存在语义。我本以为会工作:
-sem(*push_back, custodial (1))
不幸的是它没有效果。我尝试了各种组合,包括完全指定m_octets.push_back
,但似乎没有任何效果。有没有人知道这个命令的正确形式?
答案 0 :(得分:2)
这个适用于我:-sem(std::vector::push_back, custodial(1))