다음을 통해 공유


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;

매개 변수

ttime_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

참고 항목

<chrono>
clock_cast
헤더 파일 참조