3

いくつかのポインターをループしてニュースにし、それらをベクトルに格納するコードがあります。

std::vector<InputBox*> m_octets; 
...  
InputBox* octet = new InputBox(rect, title, touch_num);
m_octets.push_back(octet);

クラスデストラクタで、ポインタごとにデストラクタを呼び出しますfor_eachm_octetsこれはすべて良いと思います。すべてコンパイルされ、単体テストに合格します。問題は、GimpelのPC-lintがそれを好まないことです。`オクテット'は解放されていない管理ポインターであることがわかります(警告429)。もちろん、その警告を無効にすることはできますが、マニュアル(11.2.1)には、これに対するセマンティクスがあることが示されています。私はうまくいくと思ったでしょう:

-sem(*push_back, custodial (1))

残念ながら効果はありません。完全に指定するなど、さまざまな組み合わせを試しましm_octets.push_backたが、何も機能しないようです。与えられた例のこのコマンドの適切な形式を知っている人はいますか?

4

1 に答える 1

2

これは私にとってはうまくいきます:-sem(std::vector::push_back, custodial(1))

于 2012-08-22T19:57:04.927 に答える