問題タブ [compiler-warnings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - カスタム コンパイラの警告
ObsoleteAtribute を .Net で使用すると、コンパイラの警告が表示され、オブジェクト/メソッド/プロパティが廃止され、他のものを使用する必要があることが通知されます。私は現在、元従業員のコードの多くのリファクタリングを必要とするプロジェクトに取り組んでいます。私が作成したメッセージを与えるコンパイラ警告を生成するメソッドまたはプロパティをマークするために使用できるカスタム属性を作成したいと考えています。このようなもの
これにより、「このコードは sux を参照する必要があります」というコンパイラ警告が生成されます。カスタム属性を作成する方法を知っています。問題は、Visual Studio でコンパイラの警告を生成する方法です。
visual-c++ - Microsoft の Visual C++ コンパイラを使用する場合、gcc の -pedantic に相当するものはありますか?
Microsoft Visual C++ コンパイラを使用して、警告を最高レベルに設定したいと考えています。gcc で -pedantic を使用するのと同様です。最も多くの警告を有効にするために、どのコンパイラ スイッチを使用していますか?
c++ - 幅が広すぎる型を関数に渡すことについて GCC に警告させることはできますか?
以下は、コンパイラが診断を発行する必要があると私が考える、明らかに欠陥のあるコードです。しかし、私が考えることができるすべての警告オプションを使用しても、そうではありませgcc
ん。g++
-pedantic -Wall -Wextra
gcc
これを作成してg++
警告する方法はありますか?余談ですが、デフォルトで、またはかなり一般的な特別な警告構成でこれについて警告する別のコンパイラがありますか?
注: GCC (C および C++ コンパイラの両方) バージョン 4.2.4 を使用しています。
編集:私はそれgcc -Wconversion
がトリックを行うことを発見しましたが、同じオプションg++
はそうではありません。ここでは実際にC++を使用しているため、解決策が必要ですg++
(そして、なぜそう-Wconversion
ではないのか疑問に思っています)。
編集: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34389g++ 4.4
は、これが...maybeで修正される可能性があることを示唆しています。それが同じ問題であるかどうか、および/または修正が実際にそのバージョンで行われるかどうかは、まだ明確ではありません. たぶん、4.3 または 4.4 の誰かが私のテスト ケースを試すことができます。
.net - .NET で非 CLS 準拠のコードを使用すると、どのような影響がありますか?
CLS-Compliance に関して、以前 VB6 から移植したアプリに対して、次のようなしつこいコンパイラ警告がいくつかあります。
それにもかかわらず、私のアプリは COM およびマネージ クライアントから問題なく動作しているようです。コードを CLS に準拠させるにはどうすればよいかを説明している記事をいくつか見てきましたが、しつこい警告を取り除くためにとにかく実行するつもりですが、CLS に準拠していないコードの実際の欠点について知りたいと思っています。条項?まだ発見されていない、この押し付けの制限とは何ですか?
c - マクロ名に有効な文字は何ですか?
C スタイルのマクロ名は、識別子と同じ命名規則に従いますか? コンパイラのアップグレード後、レガシー アプリケーションに対して次の警告が出力されるようになりました。
このコード行は、アンパサンドの ASCII 値定数を定義しています。
この定義(私が知る限り、実際にはどのコードでも参照されていません)はバグが多く、「CHAR_AMPERSAND」のようなものに変更する必要があると思いますか?
c++ - Visual Studio 2005 (C++) の既定の警告レベル
MS Visual Studio 2005 を使用して、C++ で新しい開発に取り組んでいます。このために、ソリューションにいくつかの新しいプロジェクトを追加する必要があります。私は常に警告レベルを 4 に設定し、「警告をエラーとして扱う」をオンにします (プロジェクト -> プロパティ -> C++ -> 一般)。
これがデフォルトであることを Visual Studio に伝える方法はありますか?
gcc - GCCで「定義されているが使用されていない」警告を非表示にするにはどうすればよいですか?
次のようなコンパイル時のアサートがたくさんあります。
GCC でコンパイルすると、次のような多くの警告が表示されます'prefix_LineNumber' defined but not used
。コンパイル時のアサートの警告を非表示にする方法はありますか? GCCのドキュメントを検索してもうまくいきませんでした。同じマクロ内で var を自動的にグローバルに使用する可能性があると考えましたが、それを行う方法が思いつきませんでした。
GCCでその警告を非表示にする方法を知っている人はいますか?
c++ - 警告 C4099: 'class' を使用して最初に検出された型名が、'struct' を使用して検出されました (MS VS 2k8)
この警告は心配する必要がありますか? 異常な動作を引き起こす可能性があると読みましたか?
これは私がコンパイルしようとしている例です。作成者がオブジェクトをクラスとして宣言しているのに、それを構造体に typedef する理由を誰かが説明してくれませんか? クラスがPODの場合、そうするのは完全に正常ですか?
ありがとう。
gcc - gcc コンパイル時間メモ/メッセージ
MSVC がプラグマ メッセージを介してこれを実行できることは知っています -> http://support.microsoft.com/kb/155196
gcc には、ユーザーが作成した警告またはメッセージを出力する方法がありますか? (Googleで解決策を見つけることができませんでした:()
c++ - GCC およびその他の C++ コンパイラを非常に厳格にする
私は、Linux、OS X、および Windows のさまざまなフレーバーで開発および実行される大規模な共同 C++ プロジェクトに取り組んでいます。GCC、Visual Studio C++、および Intel C++ コンパイラを使用して、これらのプラットフォーム全体でコンパイルします。プロジェクトのコードの開発を開始する人が増えるにつれて、特定のオペレーティング システムの特定のコンパイラに固有の奇妙なエラーがコンパイルおよび実行時に見られるようになっています。この例は、特定の OS/コンパイラのペアが見つけたように見えるヘッダーを暗黙的にインクルードし、誤って派生クラスの基本クラスから関数をオーバーロードすることです。
私の目標は、GCC でのコンパイルをより厳密にし、すべてのプラットフォームでより多くのエラーを検出して、これらの問題に遭遇し続けないようにすることです。Google と GCC の man ページで見つけた、GCC で試してみようと考えているフラグのリストを次に示します。
- -壁
- -ウェクストラ
- -Winit-self
- -Wold-style-キャスト
- -Woverloaded-仮想
- -Wuninitialized
- -Wmissing-宣言
- -Winit-self
- -ansi
- -ペダンティック
GCC (およびそれほど重要ではない Visual Studio C++ と Intel C++ Compiler) を C++ 言語のより厳密な標準に準拠させるために人々が使用する他のフラグは何ですか? これらのいくつかは、すべてのコンパイラのすべてのバージョンで実装されていない可能性があるため、話しているコンパイラとバージョンを具体的にしてください。