問題タブ [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.

0 投票する
1 に答える
680 参照

emacs - Emacs:同じバッファー、2つのウィンドウ、1つは狭く、もう1つは

ナロートゥリージョンコマンドは便利ですが、現在のウィンドウではなくバッファに適用されます。

1つのウィンドウにバッファの縮小バージョンを表示させ、他のウィンドウで発生した場合はバッファを拡大表示させたいのですが。

これは可能ですか?

0 投票する
2 に答える
317 参照

c++ - G++ 4.5 のバグ: イニシャライザ リストのナローイングの診断がない

次のコードを試しました:

ナローイングが必要な初期化が含まれていますが、コードはエラーや警告なしで正常にコンパイルされます。一方、次のコードではエラーが発生します。

バグを見つけましたか?

PS: 現在 GCC 4.5.0 を使用しています

0 投票する
3 に答える
2076 参照

g++ - charおよび初期化子リスト

いくつかの数値バイト値を経由して渡したい初期化子リスト可変個引数テンプレートを配列に変換します。それは可能ですか?

私が考えることができるのは

  • 8進表現、「\ 001」などを使用するには、または
  • すべての値をキャストします。

しかし、どちらも満足のいくものではありません。

0 投票する
2 に答える
393 参照

java - これは、「プリミティブを狭くすると上位ビットが切り捨てられる」とはどういう意味ですか

これは、「プリミティブを狭くすると上位ビットが切り捨てられる」とはどういう意味ですか

0 投票する
2 に答える
15029 参照

java - クラスは、ejb の jndi reffrence を狭めて例外をキャストします

単純なステートレス セッション Bean を作成しようとしていますが、検索時に与える狭い参照に問題があります。私は得た

クラスキャスト例外

私が使う

日食 IDE

私の豆のクラス

私のホームインターフェース

私のコンポーネント

私の顧客

私のxmlファイル

私が受け取る例外

私はあなたのアドバイスに非常に感謝しています。

0 投票する
1 に答える
2440 参照

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.

0 投票する
1 に答える
6176 参照

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.

0 投票する
7 に答える
3695 参照

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 ビットに収まります。)

以前のコンパイラでは発生しません:

0 投票する
2 に答える
3136 参照

c++ - char から uint8_t への変換の絞り込み

C++11 を使用して次のスニペットをコンパイルします (デモはこちら):

'\xf2'への変換時に縮小変換があることを示す警告が表示されます (少なくとも GCC 4.7 では) uint8_t

どうしてこれなの?sizeof(char)は常に1であり、これは と同じsizeof(uint8_t)はずですよね?

などの他の char リテラルを使用する場合'\x02'、警告は表示されないことに注意してください。