gpt4 book ai didi

c++ - 我如何告诉 lint 跟踪指向 vector 的保管指针?

转载 作者:太空狗 更新时间:2023-10-29 21:47:55 24 4
gpt4 key购买 nike

我有一些代码循环和更新一些指针并将它们存储在一个 vector 中:

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 不喜欢它。它看到“octet”是一个尚未释放的保管指针(警告 429)。我当然可以禁用该警告,但手册 (11.2.1) 表明有一个语义。我原以为会起作用:

-sem(*push_back, custodial (1))

不幸的是,它没有效果。我尝试了各种组合,包括完全指定 m_octets.push_back 但似乎没有任何效果。对于给定的示例,有人知道此命令的正确形式吗?

最佳答案

这个对我来说很好用:-sem(std::vector::push_back, custodial(1))

关于c++ - 我如何告诉 lint 跟踪指向 vector 的保管指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12080004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com