Namespaces
Variants

std::chrono:: clock_time_conversion

From cppreference.net
ヘッダーで定義 <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 < Source, Duration > 型の引数を受け取り、同等の時点を表す std:: chrono :: time_point < Dest, OtherDuration > を返すconst-callableな operator() を提供することで実現されます。返されるtime_pointのdurationは、各特殊化によって異なる方法で元の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以降)
1-3) 恒等変換: operator() は引数のコピーを返します。
4,5) std::chrono::sys_time std::chrono::utc_time 間の変換: operator() はそれぞれ std::chrono::utc_clock::to_sys std::chrono::utc_clock::from_sys を呼び出す。
6,7) Clock from_sys to_sys をサポートする場合の std::chrono::sys_time との変換: operator() はそれぞれ Clock :: to_sys および Clock :: from_sys を呼び出す。
8,9) std::chrono::utc_time との相互変換( Clock from_utc to_utc をサポートする場合): operator() はそれぞれ Clock :: to_utc および Clock :: from_utc を呼び出す。

目次

メンバー関数

各特殊化は、暗黙的に宣言されたデフォルトコンストラクタ、コピーコンストラクタ、ムーブコンストラクタ、コピー代入演算子、ムーブ代入演算子、およびデストラクタを持ちます。

std::chrono::clock_time_conversion:: operator()

(注:このHTML要素には翻訳対象のテキストコンテンツが含まれていないため、元の構造をそのまま保持しています)
template < class Duration >

std:: chrono :: time_point < Clock, Duration >

operator ( ) ( const std:: chrono :: time_point < Clock, Duration > & t ) const ;
(1) (特殊化のメンバー (1) )
template < class Duration >

std:: chrono :: sys_time < Duration >

operator ( ) ( const std:: chrono :: sys_time < Duration > & t ) const ;
(2) (特殊化のメンバー (2) )
template < class Duration >

std:: chrono :: utc_time < Duration >

operator ( ) ( const std:: chrono :: utc_time < Duration > & t ) const ;
(3) (特殊化のメンバー (3) )
template < class Duration >

std:: chrono :: sys_time < Duration >

operator ( ) ( const std:: chrono :: utc_time < Duration > & t ) const ;
(4) (特殊化のメンバー (4) )
template < class Duration >

std:: chrono :: utc_time < Duration >

operator ( ) ( const std:: chrono :: sys_time < Duration > & t ) const ;
(5) (特殊化のメンバー (5) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: sys_time < Duration > & t ) const

- > decltype ( Clock :: from_sys ( t ) ) ;
(6) (特殊化のメンバー (6) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: time_point < SourceClock, Duration > & t ) const

- > decltype ( Clock :: to_sys ( t ) ) ;
(7) (特殊化のメンバー (7) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: utc_time < Duration > & t ) const

- > decltype ( Clock :: from_utc ( t ) ) ;
(8) (特殊化のメンバー (8) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: time_point < Clock, Duration > & t ) const

- > decltype ( Clock :: to_utc ( t ) ) ;
(9) (特殊化のメンバー (9) )

引数を std::chrono::time_point から宛先クロックへ変換します。

1-3) 恒等変換。 t を変更せずに返します。
4) std:: chrono :: utc_clock :: to_sys ( t ) を返します。
5) std:: chrono :: utc_clock :: from_sys ( t ) を返します。
6) Clock :: from_sys ( t ) を返す。このオーバーロードは、式 Clock :: from_sys ( t ) が適切に形成されている場合にのみ、オーバーロード解決に参加する。 Clock :: from_sys ( t ) std:: chrono :: time_point < Clock, Duration > を返さない場合(ここで Duration std::chrono::duration の有効な特殊化)、プログラムは不適格となる。
7) Clock :: to_sys ( t ) を返す。このオーバーロードは、式 Clock :: to_sys ( t ) が適切に形成されている場合にのみ、オーバーロード解決に参加する。 Clock :: to_sys ( t ) std:: chrono :: sys_time < Duration > を返さない場合、プログラムは不適格となる。ここで Duration std::chrono::duration の有効な特殊化である。
8) Clock :: from_utc ( t ) を返す。このオーバーロードは、式 Clock :: from_utc ( t ) が適切に形成されている場合にのみ、オーバーロード解決に参加する。 Clock :: from_utc ( t ) std:: chrono :: time_point < Clock, Duration > を返さない場合、プログラムは不適格となる。ここで Duration std::chrono::duration の有効な特殊化である。
9) Clock :: to_utc ( t ) を返す。このオーバーロードは、式 Clock :: to_utc ( t ) が適切に形成されている場合にのみ、オーバーロード解決に参加する。 Clock :: to_utc ( t ) std:: chrono :: utc_time < Duration > を返さない場合、プログラムは不適格となる。ここで Duration std::chrono::duration の有効な特殊化である。

パラメータ

t - 変換する時間点

戻り値

上記で説明した変換の結果:

1-3) t .
6) Clock :: from_sys ( t ) .
7) Clock :: to_sys ( t ) .
8) Clock :: from_utc ( t ) .
9) Clock :: to_utc ( t ) .

関連項目

(C++20)
あるクロックの時間点を別のクロックに変換する
(関数テンプレート)