std::chrono::clock_time_conversion
ヘッダ <chrono> で定義 | ||
template<class Dest, class Source>struct clock_time_conversion {}; | (C++20以上) | |
std::chrono::clock_time_conversion
は時計 Source
の std::chrono::time_point を時計 Dest
の std::chrono::time_point に変換する方法を規定する特性クラスです。 std::chrono::time_point<Source, Duration> 型の引数を取り、それと同等な時点を表す std::chrono::time_point<Dest, OtherDuration> を返す const-callable な operator()
を提供することによって、それを行います。 元の duration から、返される time_point の duration を計算する方法は、各々の特殊化によって様々です。 clock_time_conversion
は通常 std::chrono::clock_cast によって間接的にのみ使用されます。
テンプレート引数の少なくとも1つがユーザ定義時計型の場合、プログラムは clock_time_conversion
を特殊化しても構いません。
プライマリテンプレートは空の構造体です。 標準は以下の特殊化を定義します。
template<class Clock>struct clock_time_conversion<Clock, Clock>; | (1) | (C++20以上) |
template<>struct clock_time_conversion<std::chrono::system_clock, std::chrono::system_clock>; | (2) | (C++20以上) |
template<>struct clock_time_conversion<std::chrono::utc_clock, std::chrono::utc_clock>; | (3) | (C++20以上) |
template<>struct clock_time_conversion<std::chrono::system_clock, std::chrono::utc_clock>; | (4) | (C++20以上) |
template<>struct clock_time_conversion<std::chrono::utc_clock, std::chrono::system_clock>; | (5) | (C++20以上) |
template<class Clock>struct clock_time_conversion<Clock, std::chrono::system_clock>; | (6) | (C++20以上) |
template<class Clock>struct clock_time_conversion<std::chrono::system_clock, Clock>; | (7) | (C++20以上) |
template<class Clock>struct clock_time_conversion<Clock, std::chrono::utc_clock>; | (8) | (C++20以上) |
template<class Clock>struct clock_time_conversion<std::chrono::utc_clock, Clock>; | (9) | (C++20以上) |
operator()
は引数のコピーを返します。operator()
はそれぞれ std::chrono::utc_clock::to_sys および std::chrono::utc_clock::from_sys を呼びます。Clock
が from_sys
および to_sys
をサポートしているとき、 std::chrono::sys_time との間で変換します。 operator()
はそれぞれ Clock::to_sys および Clock::from_sys を呼びます。Clock
が from_utc
および to_utc
をサポートしているとき、 std::chrono::utc_time との間で変換します。 operator()
はそれぞれ Clock::to_utc および Clock::from_utc を呼びます。目次 |
[編集] メンバ関数
各々の特殊化は暗黙に宣言されたデフォルトコンストラクタ、コピーコンストラクタ、ムーブコンストラクタ、コピー代入演算子、ムーブ代入演算子およびデストラクタを持ちます。
std::chrono::clock_time_conversion::operator()
template<class Duration> std::chrono::time_point<Clock, Duration> | (1) | (特殊化 (1) のメンバ) |
template<class Duration> std::chrono::sys_time<Duration> | (2) | (特殊化 (2) のメンバ) |
template<class Duration> std::chrono::utc_time<Duration> | (3) | (特殊化 (3) のメンバ) |
template<class Duration> std::chrono::sys_time<Duration> | (4) | (特殊化 (4) のメンバ) |
template<class Duration> std::chrono::utc_time<Duration> | (5) | (特殊化 (5) のメンバ) |
template<class Duration> auto operator()(const std::chrono::sys_time<Duration>& t)const | (6) | (特殊化 (6) のメンバ) |
template<class Duration> auto operator()(conststd::chrono::time_point<SourceClock, Duration>& t)const | (7) | (特殊化 (7) のメンバ) |
template<class Duration> auto operator()(const std::chrono::utc_time<Duration>& t)const | (8) | (特殊化 (8) のメンバ) |
template<class Duration> auto operator()(conststd::chrono::time_point<Clock, Duration>& t)const | (9) | (特殊化 (9) のメンバ) |
引数 std::chrono::time_point を目的の時計に変換します。
t
を変更せずに返します。Duration
は何らかの有効な std::chrono::duration の特殊化) を返さない場合、プログラムは ill-formed です。Duration
は何らかの有効な std::chrono::duration の特殊化) を返さない場合、プログラムは ill-formed です。Duration
は何らかの有効な std::chrono::duration の特殊化) を返さない場合、プログラムは ill-formed です。Duration
は何らかの有効な std::chrono::duration の特殊化) を返さない場合、プログラムは ill-formed です。引数
t | - | 変換する time_point |
戻り値
上で説明した通りの変換の結果。
t
。[編集] 関連項目
(C++20) | ある時計の時点を別の時計に変換します (関数テンプレート) |