2011-06-10
■[VC++] 謎の警告 - デストラクタ呼び出しで未使用変数警告
Visual C++ 2010で警告レベルを4にすると、以下のプログラムで未使用変数の警告が出てしまう。
template <class T> struct Destruct { void f(T* p) // warning C4100: 'p' : 引数は関数の本体部で 1 度も参照されません。 { p->~T(); } }; struct X {}; int main() { Destruct<X>().f(0); }
デストラクタ呼び出しは変数を使ったことにならないんだろうか。
ちなみにこの警告は、<boost/concept/detail/msvc.hpp>で出る。
いちおう、Microsoft Connectの方にバグ報告しておきました。
明示的なデストラクタ呼び出しで未使用変数警告がでる - Microsoft Connect
Boostの方にはすでに報告されているようです。
https://svn.boost.org/trac/boost/ticket/3196
トラックバック - http://d.hatena.ne.jp/faith_and_brave/20110610/1307691704
リンク元
- 53 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/faith_and_brave/20081014/1223974367&rct=j&q=c++ min 茲???医?????&ei=fsLxTZWuHIfuuAPkjt2zBA&usg=AFQjCNE3f0radu-t8gFSXDxnh4L
- 39 http://twitter.com/
- 36 http://d.hatena.ne.jp/
- 21 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBwQFjAA&url=http://d.hatena.ne.jp/faith_and_brave/20100720/1279610354&rct=j&q=boost range iterator_range_io&ei=U-TxTf7sLIakvgPT5_GrBA&usg=AFQjCNFd38zvGl6z4u8ZrKlTi75VONGscg&sig2=iNL_MZ
- 18 http://www.google.co.jp/url?sa=t&source=web&cd=2&ved=0CCAQFjAB&url=http://d.hatena.ne.jp/faith_and_brave/20080122/1200992628&rct=j&q=c言語 delay関数&ei=n77xTfzuDoGmvgOn1sy_BA&usg=AFQjCNEyBKqMfKoGYt_V1wOfUO60QUiyuQ
- 13 http://d.hatena.ne.jp/tt_clown/searchdiary?word=*[C++]
- 13 http://www.google.co.jp/
- 13 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADBR_jaJP311JP311&q=lexical_cast
- 10 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=C+++固定長データ
- 10 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CCgQFjAA&url=http://d.hatena.ne.jp/faith_and_brave/20080402/1207105286&rct=j&q=boost WIN32_WINNT&tbs=lr:lang_1ja&ei=WPPyTe-fFYnuuAOk8NDtBg&usg=AFQjCNF90fpHC_U7y-cFPNAqH0V0KTzkvw