chrono
-Literale
(C++14) Der <chrono>
Header definiert 12 benutzerdefinierte Literale , die Stunden, Minuten, Sekunden, Millisekunden, Mikrosekunden und Nanosekunden darstellen. Jedes benutzerdefinierte Literal verfügt über eine integrale und eine Gleitkommaüberladung. Die Literale werden im literals::chrono_literals
Inlinenamespace definiert, der automatisch in den Bereich eingegliedert wird, wenn std::chrono
sich der Bereich befindet.
Syntax
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
Rückgabewert
Die Literale, die ein long long
-Argument verwenden, geben einen Wert oder einen entsprechenden Typ zurück. Die Literale, die ein Gleitkommaargument annehmen, geben ein duration
.
Beispiel
Die folgenden Beispiele zeigen, wie die chrono
Literale verwendet werden.
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;