Skip to content

Commit 5ab35d5

Browse files
committed
chrono::from_stream : 効果の説明とコード例の修正
規格書を見ても「いずれのフラグも`duration`に影響しないものである場合、`d`には値ゼロが代入される」といった趣旨の記述は見つけられませんでした。 実際にGCC 15.1で動作確認を行うと`d`を読み込めない場合は`failbit`が立てられるといった挙動であり、規格書の記述とも一致することから、そちらに説明を変更しました。 また、コード例を修正、動作確認しました。
1 parent ca5f1bd commit 5ab35d5

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

reference/chrono/duration/from_stream.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ namespace std::chrono {
2222
2323
2424
## 効果
25-
- パラメータ`fmt`で指定されたフォーマットフラグを使用して、入力を解析し、`tp`に代入する
26-
- いずれのフラグも`duration`に影響しないものである場合、`d`には値ゼロが代入される
25+
- パラメータ`fmt`で指定されたフォーマットフラグを使用して、入力を解析し、`d`に代入する
26+
- 有効な日付・時間の解析に失敗した場合、`is.`[`setstate`](/reference/ios/basic_ios/setstate.md)`(`[`ios_base::failbit`](/reference/ios/ios_base/type-iostate.md)`)`が呼び出され、パラメータ`d`は変更されない
2727
- タイムゾーンフォーマット`"%Z"`が指定され、解析が成功した場合、パラメータ`abbrev`が非ヌルである場合に`*abbrev`にタイムゾーン名が代入される
2828
- タイムゾーンとしてUTC時間からのオフセット時間 (日本なら`"+0900"`) を意味するフォーマット`"%z"`が指定され、解析が成功した場合、パラメータ`offset`が非ヌルである場合に`*offset`にその値が代入される
2929
@@ -55,12 +55,12 @@ int main()
5555
}
5656
{
5757
std::stringstream ss;
58-
ss << "+0900 JST";
58+
ss << "0+0900 JST";
5959

6060
chrono::seconds sec{3};
6161
std::string abbrev;
6262
chrono::minutes offset{0};
63-
chrono::from_stream(ss, "%S", sec, &abbrev, &offset);
63+
chrono::from_stream(ss, "%S%z %Z", sec, &abbrev, &offset);
6464

6565
std::cout << sec << std::endl;
6666
std::cout << abbrev << std::endl;
@@ -85,7 +85,7 @@ JST
8585
8686
### 処理系
8787
- [Clang](/implementation.md#clang): 9.0 [mark noimpl]
88-
- [GCC](/implementation.md#gcc): 9.2 [mark noimpl]
88+
- [GCC](/implementation.md#gcc): 9.2 [mark noimpl], 15.1 [mark verified]
8989
- [Visual C++](/implementation.md#visual_cpp): 2019 Update 3 [mark noimpl]
9090
9191

0 commit comments

Comments
 (0)