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。它透過提供一個 const-callable operator() 來實現,該運算子接受型別為 std::chrono::time_point<Source, Duration> 的引數,並返回一個表示等效時間點的 std::chrono::time_point<Dest, OtherDuration>。返回時間點的 duration 是根據源 duration 計算的,其方式因每個特化而異。clock_time_conversion 通常僅透過 std::chrono::clock_cast 間接使用。
如果至少有一個模板引數是使用者定義的時鐘型別,程式可以特化 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()( const std::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()( const std::chrono::time_point<Clock, Duration>& t ) const |
(9) | (特化 (9) 的成員) |
將引數 std::chrono::time_point 轉換為目標時鐘。
t。Duration 是 std::chrono::duration 的某個有效特化,則程式格式錯誤。Duration 是 std::chrono::duration 的某個有效特化,則程式格式錯誤。Duration 是 std::chrono::duration 的某個有效特化,則程式格式錯誤。Duration 是 std::chrono::duration 的某個有效特化,則程式格式錯誤。引數
| t | - | 要轉換的時間點 |
返回值
如上所述的轉換結果
[編輯] 參閱
| (C++20) |
將一個時鐘的時間點轉換為另一個時鐘的時間點 (函式模板) |