<chrono> operators
The latest version of this topic can be found at <chrono> operators.
operator modulo | operator!= | operator> |
operator>= | operator< | operator<= |
operator* | operator+ | operator- |
operator/ | operator== |
operator-
Operator for subtraction or negation of duration and time_point objects.
template <class Rep1, class Period1,
class Rep2, class Period2>
constexpr typename common_type<
duration<Rep1, Period1>,
duration<Rep2, Period2>>::type operator-(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Rep2, class Period2>
constexpr time_point<Clock,
typename common_type<Duration1, duration<Rep2, Period2>>::type>
operator-(
const time_point<Clock, Duration1>& Time,
const duration<Rep2, Period2>& Dur);
template <class Clock, class Duration1, class Duration2>
constexpr typename common_type<Duration1, Duration2>::type operator-(
const time_point<Clock, Duration1>& Left,
const time_point<Clock, Duration2>& Right);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Time
A time_point
object.
Dur
A duration
object.
Return Value
The first function returns a duration
object whose interval length is the difference between the time intervals of the two arguments.
The second function returns a time_point
object that represents a point in time that is displaced, by the negation of the time interval that is represented by Dur
, from the point in time that is specified by Time
.
The third function returns a duration
object that represents the time interval between Left
and Right
.
operator!=
Inequality operator for duration or time_point objects.
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr bool operator!=(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Duration2>
constexpr bool operator!=(
const time_point<Clock, Duration1>& Left,
const time_point<Clock, Duration2>& Right);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Return Value
Each function returns !(Left == Right)
.
operator*
Multiplication operator for duration objects.
template <class Rep1, class Period1, class Rep2>
constexpr duration<typename common_type<Rep1, Rep2>::type, Period1> operator*(const duration<Rep1, Period1>& Dur, const Rep2& Mult);
template <class Rep1, class Rep2, class Period2>
constexpr duration<typename common_type<Rep1, Rep2>::type, Period2> operator*(const Rep1& Mult, const duration<Rep2, Period2>& Dur);
Parameters
Dur
A duration
object.
Mult
An integral value.
Return Value
Each function returns a duration
object whose interval length is Mult
multiplied by the length of Dur
.
Unless is_convertible<Rep2, common_type<Rep1, Rep2>>
holds true, the first function does not participate in overload resolution. For more information, sssee <type_traits>.
Unless is_convertible<Rep1, common_type<Rep1, Rep2>>
holds true, the second function does not participate in overload resolution. For more information, see <type_traits>.
operator/
Division operator for duration objects.
template <class Rep1, class Period1, class Rep2>
constexpr duration<typename common_type<Rep1, Rep2>::type, Period1> operator/(
const duration<Rep1, Period1>& Dur,
const Rep2& Div);
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr typename common_type<Rep1, Rep2>::type operator/(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
Parameters
Dur
A duration
object.
Div
An integral value.
Left
The left duration
object.
Right
The right duration
object.
Return Value
The first operator returns a duration object whose interval length is the length of Dur
divided by the value Div
.
The second operator returns the ratio of the interval lengths of Left
and Right
.
Unless is_convertible<Rep2, common_type<Rep1, Rep2>>
holds true, and Rep2
is not an instantiation of duration
, the first operator does not participate in overload resolution. For more information, see <type_traits>.
operator+
Adds duration and time_point objects.
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr typename common_type<duration<Rep1, Period1>,
duration<Rep2, Period2>>::type operator+(const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Rep2, class Period2>
constexpr time_point<Clock,
typename common_type<Duration1, duration<Rep2, Period2>>::type> operator+(const time_point<Clock, Duration1>& Time,
const duration<Rep2, Period2>& Dur);
template <class Rep1, class Period1, class Clock, class Duration2>
time_point<Clock,
constexpr typename common_type<duration<Rep1, Period1>, Duration2>::type> operator+(const duration<Rep1, Period1>& Dur,
const time_point<Clock, Duration2>& Time);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Time
A time_point
object.
Dur
A duration
object.
Return Value
The first function returns a duration
object that has a time interval that is equal to the sum of the intervals of Left
and Right
.
The second and third functions return a time_point
object that represents a point in time that is displaced, by the interval Dur
, from the point in time Time
.
operator<
Determines whether one duration or time_point object is less than another duration
or time_point
object.
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr bool operator<(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Duration2>
constexpr bool operator<(
const time_point<Clock, Duration1>& Left,
const time_point<Clock, Duration2>& Right);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Return Value
The first function returns true
if the interval length of Left
is less than the interval length of Right
. Otherwise, the function returns false
.
The second function returns true
if Left
precedes Right
. Otherwise, the function returns false
.
operator<=
Determines whether one duration or time_point object is less than or equal to another duration
or time_point
object.
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr bool operator<=(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Duration2>
constexpr bool operator<=(
const time_point<Clock, Duration1>& Left,
const time_point<Clock, Duration2>& Right);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Return Value
Each function returns !(Right < Left)
.
operator==
Determines whether two duration
objects represent time intervals that have the same length, or whether two time_point
objects represent the same point in time.
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr bool operator==(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Duration2>
constexpr bool operator==(
const time_point<Clock, Duration1>& Left,
const time_point<Clock, Duration2>& Right);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Return Value
The first function returns true
if Left
and Right
represent time intervals that have the same length. Otherwise, the function returns false
.
The second function returns true
if Left
and Right
represent the same point in time. Otherwise, the function returns false
.
operator>
Determines whether one duration or time_point object is greater than another duration
or time_point
object.
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr bool operator>(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Duration2>
constexpr bool operator>(
const time_point<Clock, Duration1>& Left,
const time_point<Clock, Duration2>& Right);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Return Value
Each function returns Right < Left
.
operator>=
Determines whether one duration or time_point object is greater than or equal to another duration
or time_point
object.
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr bool operator>=(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
template <class Clock, class Duration1, class Duration2>
constexpr bool operator>=(
const time_point<Clock, Duration1>& Left,
const time_point<Clock, Duration2>& Right);
Parameters
Left
The left duration
or time_point
object.
Right
The right duration
or time_point
object.
Return Value
Each function returns !(Left < Right)
.
operator modulo
Operator for modulo operations on duration objects.
template <class Rep1, class Period1, class Rep2>
constexpr duration<Rep1, Period1, Rep2>::type operator%(
const duration<Rep1, Period1>& Dur,
const Rep2& Div);
template <class Rep1, class Period1, class Rep2, class Period2>
constexpr typename common_type<duration<Rep1, _Period1>, duration<Rep2, Period2>>::type operator%(
const duration<Rep1, Period1>& Left,
const duration<Rep2, Period2>& Right);
Parameters
Dur
A duration
object.
Div
An integral value.
Left
The left duration
object.
Right
The right duration
object.
Return Value
The first function returns a duration
object whose interval length is Dur
modulo Div
.
The second function returns a value that represents Left
modulo Right
.