다음을 통해 공유


chrono 리터럴

(C++14) 헤더는 <chrono> 시간, 분, 초, 밀리초, 마이크로초 및 나노초를 나타내는 12 개의 사용자 정의 리터럴 을 정의합니다. 각 사용자 정의 리터럴에는 정수 계열 및 부동 소수점 오버로드가 있습니다. 리터럴은 인라인 네임스페이 literals::chrono_literals 스에 정의되며 범위에 있을 때 std::chrono 자동으로 범위로 가져옵니다.

구문

inline namespace literals {
  inline namespace chrono_literals {
    // return integral days
    constexpr std::chrono::day operator"" d(unsigned long long d) noexcept;

    // return integral hours
    constexpr chrono::hours operator"" h(unsigned long long Val);

    // return floating-point hours
    constexpr chrono::duration<double, ratio<3600>> operator"" h(long double Val);

    // return integral minutes
    constexpr chrono::minutes(operator"" min)(unsigned long long Val);

    // return floating-point minutes
    constexpr chrono::duration<double, ratio<60>>(operator"" min)(long double Val);

    // return integral seconds
    constexpr chrono::seconds operator"" s(unsigned long long Val);

    // return floating-point seconds
    constexpr chrono::duration<double> operator"" s(long double Val);

    // return integral milliseconds
    constexpr chrono::milliseconds operator"" ms(unsigned long long Val);

    // return floating-point milliseconds
    constexpr chrono::duration<double, milli> operator"" ms(long double Val);

    // return integral microseconds
    constexpr chrono::microseconds operator"" us(unsigned long long Val);

    // return floating-point microseconds
    inline constexpr chrono::duration<double, micro> operator"" us(long double Val);

    // return integral nanoseconds
    inline constexpr chrono::nanoseconds operator"" ns(unsigned long long Val);

    // return floating-point nanoseconds
    constexpr chrono::duration<double, nano> operator"" ns(long double Val);

    // return integral year
    constexpr chrono::year operator""y(unsigned long long y) noexcept; // C++20
  } // inline namespace chrono_literals
} // inline namespace literals

반환 값

long long 인수를 사용하는 리터럴은 값 또는 해당 형식을 반환합니다. 부동 소수점 인수 duration를 사용하는 리터럴은 .

예시

다음 예제에서는 리터럴을 사용하는 chrono 방법을 보여 줍니다.

constexpr auto day = 14d; // If the value > 255, then the stored value is unspecified. 
constexpr auto twoDays = 48h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;
constexpr auto theYear = 2021y;