clock_time_conversion
구조체
동일한 시점을 유지하면서 클록의 한 형식에서 다른 형식으로 변환 time_point
하는 방법을 지정하는 특성입니다.
구문
// C++20
1) template<class Dest, class Source> struct clock_time_conversion {};
2) template<class Clock> struct clock_time_conversion<Clock, Clock>;
3) template<> struct clock_time_conversion<system_clock, system_clock>;
4) template<> struct clock_time_conversion<utc_clock, utc_clock>;
5) template<> struct clock_time_conversion<system_clock, utc_clock>;
6) template<> struct clock_time_conversion<utc_clock, system_clock>;
7) template<class Clock> struct clock_time_conversion<Clock, system_clock>;
8) template<class Clock> struct clock_time_conversion<system_clock, Clock>;
9) template<class Clock> struct clock_time_conversion<Clock, utc_clock>;
10) template<class Clock> struct clock_time_conversion<utc_clock, Clock>;
템플릿 매개 변수
Clock
변환할 클록 형식입니다.
Dest
변환할 클록 형식입니다.
Source
변환할 클록 형식입니다.
특성은 다음과 같은 변환을 제공합니다.
1) 특수화할 수 있도록 정의된 빈 구조체입니다.
2-4) ID 변환. 전달한 것과 동일한 클록을 반환합니다.
5-6) 변환 방향에 따라 변환과 utc_time
호출 utc_clock::to_sys
utc_clock::from_sys
을 변환 sys_time
합니다.
7-8) 지정된 클록이 지원 to_sys
되고 from_sys
변환 방향에 따라 호출 Clock::to_sys
되거나 Clock::from_sys
호출되는 경우 지정된 클록 간에 sys_time
변환합니다.
9-10) 지정된 클록이 지원 from_utc
되고 to_sys
변환 방향에 따라 호출 Clock::to_utc
되거나 Clock::from_utc
호출될 때 지정된 클록 간에 utc_time
변환합니다.
멤버
속성 | 설명 |
---|---|
operator () |
한 time_point 클록에서 다른 클록으로 변환합니다. |
설명
일반적으로 코드에서 이 특성을 직접 사용하지 않습니다. 변환 함수에서 clock_cast
사용됩니다.
요구 사항
헤더<chrono
>:
네임스페이스: std::chrono
컴파일러 옵션: /std:c++latest
operator()
동일한 시점을 time_point
유지하면서 한 클록 형식에서 다른 클록 형식으로 변환합니다.
구문
1)
template <class Duration>
time_point<Clock, Duration> operator()(const time_point<Clock, Duration>& t) const;
2)
template <class Duration>
sys_time<Duration> operator()(const sys_time<Duration> & t) const;
3)
template <class Duration>
utc_time<Duration> operator()(const utc_time<Duration>& t) const;
4)
template <class Duration>
sys_time<Duration> operator()(const utc_time<Duration>& t) const;
5)
template <class Duration>
utc_time<Duration> operator()(const sys_time<Duration>& t) const;
매개 변수
t
time_point
변환할 수 있습니다.
반환 값
1-3) ID 변환. 변환이 없습니다. 변경하지 않고 반환 t
합니다.
4) 반환합니다 utc_clock::to_sys(t)
.
5) 반환합니다 utc_clock::from_sys(t)
.
공제 가이드
다음 공제 가이드는 다음과 같습니다.template <class Duration> operator()
1)
template <class Duration> auto operator()(const sys_time<Duration>& t) const
-> decltype(Clock::from_sys(t));
2)
template <class Duration> auto operator()(const time_point<SourceClock, Duration>& t) const
-> decltype(Clock::to_sys(t));
3)
template <class Duration> auto operator()(const utc_time<Duration>& t) const
-> decltype(Clock::from_utc(t));
4)
template <class Duration> auto operator()(const time_point<Clock, Duration>& t) const
-> decltype(Clock::to_utc(t));
1) 지원 및 반환time_point<Clock, Duration>
하는 Clock
경우에만 오버로드 확인에 참여합니다from_sys()
.
2) 지원 및 반환sys_time<Duration>
하는 Clock
경우에만 오버로드 확인에 참여합니다to_sys()
.
3) 지원 및 반환time_point<Clock, Duration>
하는 Clock
경우에만 오버로드 확인에 참여합니다from_utc()
.
4) 지원 및 반환하는 경우에만 Clock
오버로드 확인에 참여합니다to_utc()
.utc_time<Duration>
예: clock_time_conversion
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
auto sd = sys_days{ 2021y / July / 26 };
auto time = clock_time_conversion<utc_clock, system_clock>{}(sd);
std::cout << time << "\n";
return 0;
}
2021-07-26 00:00:00