問題タブ [narrowing]
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.
emacs - Emacs:同じバッファー、2つのウィンドウ、1つは狭く、もう1つは
ナロートゥリージョンコマンドは便利ですが、現在のウィンドウではなくバッファに適用されます。
1つのウィンドウにバッファの縮小バージョンを表示させ、他のウィンドウで発生した場合はバッファを拡大表示させたいのですが。
これは可能ですか?
c++ - G++ 4.5 のバグ: イニシャライザ リストのナローイングの診断がない
次のコードを試しました:
ナローイングが必要な初期化が含まれていますが、コードはエラーや警告なしで正常にコンパイルされます。一方、次のコードではエラーが発生します。
バグを見つけましたか?
PS: 現在 GCC 4.5.0 を使用しています
g++ - charおよび初期化子リスト
いくつかの数値バイト値を経由して渡したい初期化子リスト可変個引数テンプレートを配列に変換します。それは可能ですか?
私が考えることができるのは
- 8進表現、「\ 001」などを使用するには、または
- すべての値をキャストします。
しかし、どちらも満足のいくものではありません。
java - これは、「プリミティブを狭くすると上位ビットが切り捨てられる」とはどういう意味ですか
これは、「プリミティブを狭くすると上位ビットが切り捨てられる」とはどういう意味ですか
java - クラスは、ejb の jndi reffrence を狭めて例外をキャストします
単純なステートレス セッション Bean を作成しようとしていますが、検索時に与える狭い参照に問題があります。私は得た
クラスキャスト例外
私が使う
日食 IDE
私の豆のクラス
私のホームインターフェース
私のコンポーネント
私の顧客
私のxmlファイル
私が受け取る例外
私はあなたのアドバイスに非常に感謝しています。
search-engine - Bing Search API: Narrow by date
In it's current version, is it possible to use Bing's "Narrow By Date" feature when accessing it's API?
I cannot find any information about how to narrow the results such that it only shows results from the "past 24 hours" or "past week" (and so on).
The website/documentation isn't exactly clear on what I can and cannot do, and how. Do any of you know whether it's possible or not?
I can see on their Advanced Search Keywords page that you can use other narrowing features (region, language, hasfeed, etc.) here: http://onlinehelp.microsoft.com/en-ca/bing/ff808421.aspx
If you need any more context or information please ask. Thank you for your patience and help.
c++ - What are the consequences of ignoring narrowing conversions in C++0x
Since switching on the C++0x standard in g++, I've started seeing 'narrowing conversion' errors, particularly when converting from an 'int' to a 'short' although I understand the error covers a much broader swath of conversions.
Can anyone shed some light on the rational for introducing this extra level of safety?, What are the possible consequences of disabling this error? (apart from the potential loss of precision).
Thanks.
c++ - -1 を使用して、構造体または配列の符号なしの { } 初期化を初期化する
本当に簡単
すべてのビットが設定された符号なし定数を作成するにはどうすればよいですか?
...フィールドを { } で初期化するために使用できます。
...これは、GCC 4.7.2 から -Wnarrowing 警告を受けません。
以下は満足のいくものではありません。
基本的に、{} 初期化を書いているユーザーは、ufield の型を知りません。彼はそれが unsigned 型であることだけを知っていますが、幅は知りません。それがどの符号なしタイプであるかは正確ではありません。
* できるだけシンプルでエレガントな構文が必要なもう 1 つの理由 *
ここでの「ユーザー」は、実際に C または C++ プログラムを書いているわけではありません。彼は構成ファイルを編集しています。プログラム (単純な Perl または Python スクリプト) が構成ファイルを処理し、C コードを生成します。このプログラムはあまり洗練されたものではなく、現時点では次のようなテキストのチャンクを通過します。
typedef struct Some_Struct { unsigned a; を生成します。符号なし b、符号なし c; } Some_Struct = {-1,2,3}; //同上
基本的に、「この符号なし値のすべてのビットが設定されている」というリテラルのユーザーフレンドリーな構文を作成できるようにしたいと考えています。署名されていないものがどれほど大きいかを知る必要はありません。また、構成ファイルを処理するプログラムが複雑になりすぎることもありません。
潜在的な回答プロバイダーが、これは新しい制約であり、現実的ではないなどと文句を言わないように
します。テンプレートに関してまったく同じ問題がありました。つまり、「任意の幅の符号なし、すべて 1」のリテラルを書きたいテンプレート型の場合です。テンプレートでは、明らかにこれを行うことができる醜い、醜い、醜い構文のいくつかを実行したいと思うかもしれません: しかし、シンプルでエレガントな構文があればいいのにと思います。
*本当の質問*
Q: GCC 4.7.2 警告をトリガーせずに「すべて 1 が設定されている」定数を作成する方法はありますか?
簡単に
リテラル定数 -1 を使用して構造体のフィールドを初期化するプログラムに出くわしました。
以前のバージョンの GCC では警告なしでこれを受け入れていましたが、かなり最近のバージョンの GCC 4.7.2 では警告が表示されます。
注: これは単なる警告です。-1 を unsigned に変換した結果は、C/C++ 標準で明確に定義されています。
私は警告が嫌いなので、この迷惑な警告を黙らせたいと思います。ファイル全体に適用される #pragmas は使用しないほうがよいと思います。実際のバグに対する警告が無効になる可能性があるためです。
(ちなみに、この警告は、フィールドを初期化するときのみ表示されます。フィールド以外を初期化するときは表示されません。
やっている
バグを沈黙させます。
しかし、フィールドの型が unsigned ではなく uint64_t である場合、~0U は -1 とは異なる結果を提供することが指摘されました: 0xFFFFFFFFFFFFFFFF ではなく 0x00000000FFFFFFFF。(つまり、64 ビットの 1 ではなく、32 ビットの 1 です。)
構造体 U と初期化コードは完全に異なる場所に存在する可能性があり、ユーザーに通知せずにフィールドのサイズ、ビットマスクを増やすことができるようにしたいと考えています。その意図は、使用されている符号なしタイプの「すべて 1 のマスク」を取得することです。
同様に
バグを沈黙させます。(驚いたことに、-1 が unsigned と見なされる可能性があることを知りませんでした。)
しかし、有限幅の定数でもあります。
詳細
ここにテストプログラムがあります。(ちなみに、私が尋ねているのは、署名されていないメンバーを初期化するために符号付きリテラル定数 -1 を使用することだけです。他の警告は単なるテストです。64 ビットの数値がそうでないことを説明する必要はありません。 32 ビットに収まります。)
以前のコンパイラでは発生しません:
c++ - char から uint8_t への変換の絞り込み
C++11 を使用して次のスニペットをコンパイルします (デモはこちら):
'\xf2'
への変換時に縮小変換があることを示す警告が表示されます (少なくとも GCC 4.7 では) uint8_t
。
どうしてこれなの?sizeof(char)
は常に1
であり、これは と同じsizeof(uint8_t)
はずですよね?
などの他の char リテラルを使用する場合'\x02'
、警告は表示されないことに注意してください。