>` C 11 での抽出失敗時に変数をゼロにしますか? " />
なぜ Stringstream >> は失敗時にターゲットの値を変更するのですか?
最新の C (C 11 以降) では、>> ; 抽出が失敗した場合の stringstream の演算子が以前のバージョンから変更され、C 11 標準に従って、失敗するとターゲット変数が に設定されます。
C 11 より前では、「TC PL、第 3 版」からの Stroustrup の引用によれば、障害時の動作は異なっていました。変数は変更されないままである必要があります。ただし、提供されているコード例では矛盾が示されており、抽出試行が失敗した後にターゲット変数 v がゼロになります。
これ明らかに矛盾した動作は、スニペットが C 11 モードでコンパイルされているため、>> 演算子の動作が次のように変更されるという事実によって説明できます。データ型 (例: ワードを整数に読み取ろうとする場合)、ターゲット変数は変更されず、フェイルビット フラグが設定されます。
以上がC 11 で抽出失敗時に「stringstream >>」が変数をゼロにするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。