に厄介な警告C4100を避け、私は私がなぜ理解していないのVisual Studio 2013を使用して、このは、ビジュアル・スタジオ
void destroy(pointer p) {//warning C4100
p->~T();
}
のような例ではC4100の警告の多くを得ますよ。 #pragma warning(プラットフォーム独立性、可読性)なしでこの警告を回避するにはどうすればよいですか?
に厄介な警告C4100を避け、私は私がなぜ理解していないのVisual Studio 2013を使用して、このは、ビジュアル・スタジオ
void destroy(pointer p) {//warning C4100
p->~T();
}
のような例ではC4100の警告の多くを得ますよ。 #pragma warning(プラットフォーム独立性、可読性)なしでこの警告を回避するにはどうすればよいですか?
これはVisual Studio bug/limitationです。コードは、プリミティブ型のそれ以外の場合は参照されていないパラメータにデストラクタを呼び出したときに
C4100も発行することができます。 これはVisual C++コンパイラの制限です。
バグ報告があるはずですが、私は現時点でそれを見つけることはできません。
回避策:
リファレンスp
そうでない場合:/W4
または
void destroy(pointer p) {
p; //resolve warning C4100
p->~T();
}
は警告を無効にします210
/wd4100
または#pragma warning(disable : 4100)
別のコンパイラを使用してくださいを追加してコンパイルします。
なんて残念なのでしょう、共にありがとう – user1235183
ワンステップバック...なぜオブジェクトデストラクタを明示的に呼び出すのですか?それが有用な状況はほとんどありません。実際に何もせずに、そのパラメータを_reference_するために_try_単に 'p;'することができます。 –
'delete p;'を呼び出さないのはなぜですか? – Fabian