- chrono[meta header]
- std::chrono[meta namespace]
- function[meta id-type]
- cpp20[meta cpp]
namespace std::chrono {
template <class charT, class traits, class Alloc = std::allocator<charT>>
std::basic_istream<charT, traits>&
from_stream(std::basic_istream<charT, traits>& is,
const charT* fmt,
day& d,
basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr); // (1) C++20
}
フォーマット指定して入力ストリームからday
オブジェクトに入力する。
- パラメータ
fmt
で指定されたフォーマットフラグを使用して、入力を解析し、d
に代入する - 有効な日の解析に失敗した場合、
is.
setstate
(
ios_base::failbit
)
が呼び出され、パラメータd
は変更されない - タイムゾーンフォーマット
"%Z"
が指定され、解析が成功した場合、パラメータabbrev
が非ヌルである場合に*abbrev
にタイムゾーン名が代入される - タイムゾーンとしてUTC時間からのオフセット時間 (日本なら
"+0900"
) を意味するフォーマット"%z"
が指定され、解析が成功した場合、パラメータoffset
が非ヌルである場合に*offset
にその値が代入される
is
を返す
#include <cassert>
#include <sstream>
#include <chrono>
namespace chrono = std::chrono;
int main()
{
{
std::stringstream ss;
ss << "01";
chrono::day d;
chrono::from_stream(ss, d, "%d");
assert(d == chrono::day{1});
}
{
std::stringstream ss;
ss << "1";
chrono::day d;
chrono::from_stream(ss, d, "%2d");
assert(d == chrono::day{1});
}
}
- chrono::from_stream[color ff0000]
- C++20
- Clang: 9.0 [mark noimpl]
- GCC: 9.2 [mark noimpl]
- Visual C++: 2019 Update 3 [mark noimpl]
- chronoの
parse()
(入力フォーマットの詳細)