Bagikan melalui


Literal chrono

(C++14) Header <chrono> menentukan 12 literal yang ditentukan pengguna yang mewakili jam, menit, detik, milidetik, mikrodetik, dan nanodetik. Setiap literal yang ditentukan pengguna memiliki integral dan kelebihan titik mengambang. Literal didefinisikan dalam literals::chrono_literals namespace sebaris, yang dibawa ke dalam cakupan secara otomatis ketika std::chrono berada dalam cakupan.

Sintaks

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

Nilai hasil

Harfiah yang mengambil long long argumen mengembalikan nilai atau jenis yang sesuai. Harfiah yang mengambil argumen floating point mengembalikan duration.

Contoh

Contoh berikut menunjukkan cara menggunakan chrono literal.

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;