問題タブ [binary-operators]

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 に答える
458 参照

c++ - 単項関数オブジェクトと二項関数オブジェクトを使用した C++ コンパイル エラー

ショット C++ コード スニペットに関して短い質問があります。演算子を評価しようとするとすぐにコンパイル エラーが発生します()(メイン メソッドで 0 が返される前の最後の行)。コードは次のようになります。

コンパイルエラーはドイツ語ですが、基本的には..

呼び出しのための一致があります」。

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

c - C での型昇格と型キャスト

次の変数があります。

そして、これが私がやりたいことです:

しかし、最初の行でエラーが発生します:非スカラー型への変換が要求されました

そして、2行目にエラーが表示されます:無効なオペランドからバイナリへ - (have 'UWORD64' and 'UWORD64')

何が問題なのかわかりません。下位のタイプを昇進させるべきではありませんか?これが問題を引き起こしているのはなぜですか?

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

c++ - 参照によって返される C++ マトリックス クラスのオーバーロードされた演算子

テンプレート化された行列クラスを作成していますが、演算子から値を返すときにスタック オーバーフローが発生します: +、-、* より大きな行列の場合。スタックを解放し、余分なコピーを避けるために、何らかの方法で参照によって戻ることを好みますが、その場合、newで構築されたオブジェクトを返し、「すべてのnewに対して削除を使用する」という一般的なルールを破る必要があります。コピーのオーバーヘッドとスタック制限の問題で値渡しができず、メモリリークで参照渡しもできないのですが、どうすればよいでしょうか。

これが私の製品関数です(マトリックスには2D配列要素が含まれています):

GPUで(MSアンプを使用して)いくつかの行列演算を強化したいので、このクラスを書いています。既存のソリューションを検索したところ、GPU で高速化された線形代数ライブラリが見つかりましたが、+、-、* 演算子を使用した単純な行列クラスが見つかりませんでした。多分誰かが私を推薦してくれるでしょうか?

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

linux - null二項演算子をbashする

私が最近行ったテストでは、次のbashコマンドの出力について質問がありました。

結果はとで0あり0、両方の単項演算子の戻りコードにエラーがなかったことを示しています。これは、 (空)と「非ヌル」(空ではない)の$var両方に解決されることを意味します、正しいですか?null

これはどのように可能ですか?

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

php - 参照で遊ぶ

理由がわかります

出力 37、42、37

その間

出力 37、37、37

どちらの場合も$b、 は への参照で$a['ID']あり$c、 は と同じオブジェクトへのポインタ$aです。

によって参照される値を代入すると$b変更されるため、 とが変更されると変更されます。$a['ID']$c['ID']$b$a['ID']

変更する$c['ID']と、新しい int が に割り当てられ$a['ID']$b参照され$a['ID']なくなります。

しかし、これは私を悩ませます

(出力 37、37、37)

これは定義された動作ですか?私はドキュメントでそれについて何も見ませんでした...

0 投票する
0 に答える
86 参照

coding-style - 長い行を含む二項演算子のスタイル設定

C++ 用の Google などのほとんどのスタイル ガイドでは、行の最大長を 80 文字にすることと、関数呼び出しが正しくフォーマットされるように関数呼び出しに関連するガイドラインを推奨しています。

たとえば、Google のスタイル ガイドがこの問題について述べていることは次のとおりです

関数呼び出しの形式は次のとおりです。

引数がすべて 1 行に収まらない場合は、複数の行に分割し、後続の各行を最初の引数に揃えます。開き括弧の後または閉じ括弧の前にスペースを追加しないでください。

関数に多くの引数がある場合、コードが読みやすくなる場合は、1 行に 1 つずつ配置することを検討してください。

オプションで、引数ごとに 1 行ずつ、すべての引数を後続の行に配置できます。

特に、関数シグネチャが長すぎて行の最大長に収まらない場合は、これを行う必要があります。

議論されていないのは、二項演算子にとって何が望ましいかです。これはスタイルの問題なので、特に正しい答えはありませんが、長い変数名や式を持つ二項演算子の場合に人々が好むものについて意見を求めたいと思っていました。

たとえば、単純なケースを考えてみましょう

私が飛び出す3つの形式があります。

私の意見では、最初の 2 つはもう少し直感的です。Zend Framework Style Guideでは、PHP で文字列を繰り返し連結するために #2 の形式を推奨しています。

3 つ目については、Pear の PHP スタイル ガイド->では、関数呼び出しが繰り返される場合に演算子で新しい行を開始することを推奨しています。

個人的には後者の方が好みですが、他の人の意見はどうなのか気になりました。

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

c++ - 最初の引数でバイナリ シフト演算子をオーバーロードする

フォーマットされた (テキスト) およびフォーマットされていない (バイナリ) データを印刷および読み取るために使用できる自己定義のファイル ストリーム クラスを作成したいと思います。シフト演算子 (<< および >>) は既に存在し、ファイル ストリームのメンバーの書き込みと読み取りも同様ですが、シフト演算子 << のみを使用して、ストリームがバイナリ モードで開かれている場合はフォーマットされていない出力を作成したいと考えています。別の方法でフォーマットされます。

私が書いたコードは、少なくとも文字列と chars( と cstrings) では正しく動作しません:

問題はおそらくostream の shift operator のどこかにあるため、ostream の << および >> 演算子は char、cstring、および string でオーバーロードされません。

コードのどこを変更し、何を何に置き換える必要があるか教えていただけますか?

また、アドバイスを提供し、私の目的に適した方法を示していただければ幸いです。そのため、回避策も受け入れられます-それらがエレガントであれば。