Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The latest version of this topic can be found at <chrono> functions.
chrono literals | duration_cast Function | time_point_cast Function |
chrono literals
(C++14) The <chrono> header defines 12 user-defined literals to facilitate using literals that represent hours, minutes, seconds, milliseconds, microseconds, and nanoseconds. Each user-defined literal has an integral and a floating-point overload. The literals are defined in the literals::chrono_literals inline namespace which is brought into scope automatically when std::chrono is in scope.
inline namespace literals {
inline namespace chrono_literals {
// 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);
}// inline namespace chrono_literals
}// inline namespace literals
Remarks
Example
The following examples sow how to use the chrono literals.
constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;
duration_cast Function
Casts a duration
object to a specified type.
template <class To, class Rep, class Period>
constexpr To duration_cast(const duration<Rep, Period>& Dur);
Return Value
A duration
object of type To
that represents the time interval Dur
, which is truncated if it has to fit into the target type.
Remarks
If To
is an instantiation of duration
, this function does not participate in overload resolution.
time_point_cast Function
Casts a time_point object to a specified type.
template <class To, class Clock, class Duration>
time_point<Clock, To>
time_point_cast(
const time_point<Clock, Duration>& Tp);
Return Value
A time_point
object that has a duration of type To
.
Remarks
Unless To
is an instantiation of duration, this function does not participate in overload resolution.