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