問題タブ [visual-c++-2019]

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

c++ - MSVC 2019: C++ の for ループのコンマ区切り条件の順序が警告を変更する

以下のコードを VS2017 から 2019 に移植すると、新しい警告が表示されました (これは元の単純化されたバージョンです)。

main.cpp(18,90): 警告 C4834: 'nodiscard' 属性を持つ関数の戻り値を破棄しています

for ループには、コンマで区切られた 2 つの初期化子、コンマで区切られた 2 つの条件などがあることに注意してください。forj < Nループから条件を削除すると、警告が消えます。2 つの条件を入れ替えても、警告はありません。

演算!=子には破棄される戻り値があり、それが唯一の条件である場合、または最後の条件である場合は破棄されないと思いますか? これはコンパイラの予想される動作ですか??