問題タブ [valarray]
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++11 - std::valarray で .sum() と += を使用する
私は型を使用しておりstd::valarray<std::valarray<double>>
、含まれている各 valarrays 要素を合計して、std::valarray<double>
.
std::valarray<T>
C++ のドキュメントには、演算子 .sum() は、演算子が型 T に対して定義されている限り適用できると記載されてい+=
ます。以下のコード (method1) はこれを に適用しようとしますstd::valarray<std::valarray<double>>
が、結果はナンセンスに見えます。
+=
ただし、演算子 (method2)を使用してこれを手動で実行すると、必要な結果が得られます。しかし、method2 が機能するという事実は、演算子+=
が type に対して定義されていることを意味しているように思われstd::valarray<double>
ます。動作するはずです。ここで何が起こっているのか本当に理解できません...
私のコード:
私の出力:
c++ - gcc での std::valarray の実装のバグですか?
次のプログラムを試しました
適切な関数がこのステートメントで暗黙的に使用されbegin
ているというエラーメッセージを受け取りましたv3
見つからない。
だから私は次のコードを試しました
そして結果を得た
しかし、この発言のとき
に変更されます
出力は
operator *
forstd::valarray<int>
は次のように宣言されます
の実装のバグstd::valarray<int>
ですか?