0

VC ++(VSTS 2008)で、デフォルトの戻りパスに値を明示的に返さない関数(またはそれらを見つける他の簡単な方法)のコンパイラエラーを回避する方法はありますか?

同じ問題で、そのような関数が実際に何を返すかについての保証人はいますか?

4

3 に答える 3

2

警告番号は正確にはわかりませんが、#pragma warningを使用して、特定の警告をエラーとして処理するように強制できます。

例:

#pragma warning( error: 4001)

警告4001をエラーとして扱います

于 2009-10-19T13:37:52.757 に答える
1

最大警告レベルを有効にし、警告をエラーとして扱うと、探しているものが確実に見つかります。それ以外の場合に返されるものに関する推測:関数の戻り型のデフォルトで構築されたオブジェクト。

于 2009-10-19T13:34:05.637 に答える
0

VCはこの問題の多くのインスタンスについて警告しますが、一部を検出できません。関数テンプレートでこの問題が欠落していることに繰り返し気づきましたが、いくつかの単純な関数でもintを確認しました。警告をエラー(すべての警告のコンパイラスイッチまたは特定の警告のプラグマ)として扱うと、検出された警告を見逃すことはできなくなります。

これらのVCの見落としについては、より徹底したツールを使用する必要があります。VSTSのAFAIKでは/analyze、コンパイラーのスイッチをスローして、さらに多くの問題を検出させることもできます。

lintのようなプログラムには多くのバージョンもあります。

他のコンパイラを使用することも役立ちます。VSプロジェクトを初めてGCCに移植するのは非常に難しい場合がありますが、インテルのコンパイラーをVCのドロップイン代替品として使用し、VCプロジェクトをすぐにコンパイルできると思います。Comeau C ++にも、VCと互換性のあるスイッチがあり、非常に優れたエラーメッセージが表示されます。

于 2009-10-19T13:45:17.053 に答える