問題タブ [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.
gcc - 警告IDを持つ警告メッセージを取得するためのg++またはgccオプション
デフォルトでは、gcc /g++は行番号のみの警告メッセージを出力します。g ++またはgccがビルド警告メッセージを警告IDに関連付けて、警告メッセージを(解析せずに)簡単に識別できるようにするオプションを探しています。また、より詳細な警告メッセージを取得するためのオプションは他にありますか?(各警告メッセージはそれ自体でかなり説明的だと思いますが、ただ好奇心が強いです)
ありがとう。
perl - コマンドライン スイッチまたはプラグマで Perl の警告をオンにする必要がありますか?
Perl スクリプトを開始するための以下の 2 つの例に違いはありますか? もしそうなら、いつ一方を他方に使用しますか?
例 1:
例 2:
c++ - 条件式の定数値
無限ループに関するコーディング スタイルの質問で、for(;;) スタイルを好むと述べた人もいました。これは、while(true) スタイルが MSVC で条件式が定数であるという警告メッセージを表示するためです。
条件式での定数値の使用は #ifdef 地獄を回避する便利な方法であるため、これには非常に驚きました。たとえば、ヘッダーに次のように記述できます。
CONFIG_FOO が定義されていない場合、コードは単純に条件を使用し、コンパイラを信頼してデッド コードを除外できます。
foo_enabled が使用されるたびに CONFIG_FOO をテストする代わりに:
この設計パターンは、Linux カーネルで常に使用されます (たとえば、include/linux/cpumask.h は、SMP が無効な場合は 1 または 0 に、SMP が有効な場合は関数呼び出しに、いくつかのマクロを定義します)。
その MSVC 警告の理由は何ですか? さらに、その警告を無効にすることなく #ifdef 地獄を回避するより良い方法はありますか? それとも、一般的に有効にすべきではない過度に広範な警告ですか?
c# - ラムダ式で反復変数を使用するのが悪いのはなぜですか
簡単なコードを書いていて、このコンパイラエラーに気づきました
ラムダ式で反復変数を使用すると、予期しない結果が生じる場合があります。
代わりに、ループ内にローカル変数を作成し、反復変数の値を割り当てます。
私はそれが何を意味するかを知っており、大したことではなく、簡単に修正できます。
しかし、ラムダで反復変数を使用するのがなぜ悪い考えなのか疑問に思っていましたか?
後でどのような問題を引き起こす可能性がありますか?
perl - Perlはいつ変数を自動初期化しますか?
配列に値が出現する回数を数える簡単なPerlを次に示します。これは警告なしで実行されます。
ループ本体をに変更した場合
Perlは、「初期化されていない値を追加で使用する」と警告します。
内部で何が起こっているのですか?++演算子にオペランドとして提供され、+演算子で初期化されていない場合、値が初期化されるのはなぜですか?
perl - Perl の DBI を使用して、日付値を Oracle から Excel に変換するにはどうすればよいですか?
非常に単純な Perl プロセスで問題が発生しています。私は基本的に Oracle データベースにクエリを実行しており、それを Excel にロードしたいと考えています。DBIx::Dump を使用できましたが、動作します。ただし、さまざまな Excel 書式設定ツールを使用できる必要があります。また、Spreadsheet::WriteExcelは、より多くの書式設定を行うことができる Excel に出力する最高のモジュールだと思います。
以下は、コードと私が得ているエラーです。私は基本的に Oracle にクエリを実行し、データをフェッチし、配列にロードして、Excel に書き込もうとします。何らかの理由で何らかの比較を行っており、データ型が好きではありません。たとえば、日付は「25-OCT-08」です。SVP は「S01」です。数値ではないと言っているようです。
エラー:
コード:
php - PHP で file_get_contents() 関数の警告を処理するにはどうすればよいですか?
私はこのようなPHPコードを書きました
しかし、「http://」を削除すると$site
、次の警告が表示されます。
警告: file_get_contents(www.google.com) [function.file-get-contents]: ストリームを開けませんでした:
試しtry
てみcatch
ましたが、うまくいきませんでした。
gcc - ファイルの末尾に改行がないという GCC の警告を無効にするフラグは何ですか?
改行警告が存在する理由についてのこの投稿を読んだところですが、正直なところ、私のチームにはいくつかの異なるプラットフォームといくつかの異なるエディターで作業している人々がいます (誰もが自分に最適なものを使用しています)。対処する価値のある警告ではなく、ノイズになり、深刻な警告を見つけるのが面倒になります。
多くの場合、重要な警告が見過ごされてきました。なぜなら、人々は無数の無用な警告を通り過ぎることに慣れてしまったため、明らかに注意深くそれらを見るのをやめてしまったからです。私たちの場合、GCC はオオカミを叫びすぎて誰も真剣に受け止められなくなっていると言えます。これは悪い態度ですが、それは人間の本性です。
警告が必要なため、現在は でコンパイルして-Wall
いますが、改行警告を回避するためのカウンター フラグはありますか?
注:マニュアルを少し調べましたが、どこにも答えが明白に見つからなかったので、あきらめました。
注: Robert Gamble の完全に合理的な解決策に応えて、私たちのコードはクロスプラットフォームであり、Linux、Solaris、および Windows で人員とビルドを行っているため、改行... は合意に達していません。そして誰かのコンパイラはいつも泣き虫になる。40 人以上の開発者がいて、プログラマー以外のスタッフもいるからです。
c++ - 警告 C4244: 'argument': 'SIZE_T' から 'DWORD' への変換、データが失われる可能性があります
コードに一連のオーバーロードされた関数を含める必要がありますが、変換警告が発生します。テストコードは次のとおりです。
コンパイラは警告を出します:
void f(SIZE_T arg) のコメントを外すと、
この警告またはエラーを回避するにはどうすればよいですか?
sql - SQL Server 2000 の "NO JOIN PREDICATE" 警告 - なぜですか?
SQL Server 2000 で奇妙な問題が発生しましたが、これが発生する理由が思いつきません。
2 つのテーブルがあり、どちらも主キーとクラスター化インデックスが組み合わされており、両方のキーの構造は同じです。
したがって、このように参加するのは簡単です。
クエリ実行プランを見ると、次のようになります。
- クラスタ化インデックス シーク [db].[dbo].[table1].[PK_table1] (48%)
- クラスタ化インデックス シーク [db].[dbo].[table2].[PK_table2] (51%)
- ネストされたループ (内部結合) (1%)警告: NO JOIN PREDICATE
- 選択 (0%)
これを行うと(NVARCHAR文字列に注意してください!):
私は得る:
- クラスター化インデックス スキャン [db].[dbo].[table1].[PK_table1] (98%)
- クラスタ化インデックス シーク [db].[dbo].[table2].[PK_table2] (1%)
- ネストされたループ (内部結合) (1%)ここでは警告なし
- 選択 (0%)
この振る舞いは、私を少し困惑させます。
- 「NO JOIN PREDICATE」という警告が表示されるのはなぜですか? に変更
'Foo'
すると警告が消えるのはなぜN'Foo'
ですか? 私のキー列は NVARCHAR 型ではないので、違いはありませんか? - この警告の存在は否定的な意味を持ちますか、それとも無視できますか?
- インデックス シークからインデックス スキャンに切り替わるのはなぜですか?
いくつかの背景情報: テーブルのカーディナリティは約です。1 つのテーブルに 25,000 レコード。他に12,000件のレコード。データベースの互換性レベルは 80 (SQL Server 2000) です。デフォルトの照合順序はSQL_Latin1_General_CP1_CI_AS
、違いがある場合は です。
の内容は次の@@VERSION
とおりです。
Microsoft SQL Server 2000 - 8.00.2273 (Intel X86) 2008 年 3 月 7 日 22:19:58 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
PS: KB322854は知っていますが、これは明らかにそうではありません。