VC ++(VSTS 2008)で、デフォルトの戻りパスに値を明示的に返さない関数(またはそれらを見つける他の簡単な方法)のコンパイラエラーを回避する方法はありますか?
同じ問題で、そのような関数が実際に何を返すかについての保証人はいますか?
VC ++(VSTS 2008)で、デフォルトの戻りパスに値を明示的に返さない関数(またはそれらを見つける他の簡単な方法)のコンパイラエラーを回避する方法はありますか?
同じ問題で、そのような関数が実際に何を返すかについての保証人はいますか?
警告番号は正確にはわかりませんが、#pragma warningを使用して、特定の警告をエラーとして処理するように強制できます。
例:
#pragma warning( error: 4001)
警告4001をエラーとして扱います
最大警告レベルを有効にし、警告をエラーとして扱うと、探しているものが確実に見つかります。それ以外の場合に返されるものに関する推測:関数の戻り型のデフォルトで構築されたオブジェクト。
VCはこの問題の多くのインスタンスについて警告しますが、一部を検出できません。関数テンプレートでこの問題が欠落していることに繰り返し気づきましたが、いくつかの単純な関数でもintを確認しました。警告をエラー(すべての警告のコンパイラスイッチまたは特定の警告のプラグマ)として扱うと、検出された警告を見逃すことはできなくなります。
これらのVCの見落としについては、より徹底したツールを使用する必要があります。VSTSのAFAIKでは/analyze
、コンパイラーのスイッチをスローして、さらに多くの問題を検出させることもできます。
lintのようなプログラムには多くのバージョンもあります。
他のコンパイラを使用することも役立ちます。VSプロジェクトを初めてGCCに移植するのは非常に難しい場合がありますが、インテルのコンパイラーをVCのドロップイン代替品として使用し、VCプロジェクトをすぐにコンパイルできると思います。Comeau C ++にも、VCと互換性のあるスイッチがあり、非常に優れたエラーメッセージが表示されます。