template <class Rep1, class Period1, class Rep2, class Period2> constexpr bool operator==(const std::chrono::duration<Rep1, Period1>& lhs, const std::chrono::duration<Rep2, Period2>& rhs); | (1) | (since C++11) |
template <class Rep1, class Period1, class Rep2, class Period2> constexpr bool operator!=(const std::chrono::duration<Rep1, Period1>& lhs, const std::chrono::duration<Rep2, Period2>& rhs); | (2) | (since C++11) (until C++20) |
template <class Rep1, class Period1, class Rep2, class Period2> constexpr bool operator<(const std::chrono::duration<Rep1, Period1>& lhs, const std::chrono::duration<Rep2, Period2>& rhs); | (3) | (since C++11) |
template <class Rep1, class Period1, class Rep2, class Period2> constexpr bool operator<=(const std::chrono::duration<Rep1, Period1>& lhs, const std::chrono::duration<Rep2, Period2>& rhs); | (4) | (since C++11) |
template <class Rep1, class Period1, class Rep2, class Period2> constexpr bool operator>(const std::chrono::duration<Rep1, Period1>& lhs, const std::chrono::duration<Rep2, Period2>& rhs); | (5) | (since C++11) |
template <class Rep1, class Period1, class Rep2, class Period2> constexpr bool operator>=(const std::chrono::duration<Rep1, Period1>& lhs, const std::chrono::duration<Rep2, Period2>& rhs); | (6) | (since C++11) |
template <class Rep1, class Period1, class Rep2, class Period2> requires std::three_way_comparable<std::common_type_t<Rep1, Rep2>> constexpr auto operator<=>(const std::chrono::duration<Rep1, Period1>& lhs, const std::chrono::duration<Rep2, Period2>& rhs); | (7) | (since C++20) |
Compares two durations. Let CT
be std::common_type<std::chrono::duration<Rep1, Period1>, std::chrono::duration<Rep2, Period2>>::type
:
lhs
and rhs
are equal, i.e. the number of ticks for the type common to both durations are equal.lhs
to rhs
, i.e. compares the number of ticks for the type common to both durations.lhs
to rhs
, i.e. compares the number of ticks for the type common to both durations. The return type is deduced from CT(lhs).count() <=> CT(rhs).count()
. The | (since C++20) |
lhs | - | duration on the left-hand side of the operator |
rhs | - | duration on the right-hand side of the operator |
CT(lhs).count() == CT(rhs).count()
!(lhs == rhs)
CT(lhs).count() < CT(rhs).count()
!(rhs < lhs)
rhs < lhs
!(lhs < rhs)
CT(lhs).count() <=> CT(rhs).count()
#include <chrono> #include <iostream> int main() { if(std::chrono::seconds(2) == std::chrono::milliseconds(2000)) std::cout << "2 s == 2000 ms\n"; else std::cout << "2 s != 2000 ms\n"; if(std::chrono::seconds(61) > std::chrono::minutes(1)) std::cout << "61 s > 1 min\n"; else std::cout << "61 s <= 1 min\n"; using namespace std::chrono_literals; static_assert(1h == 60min); static_assert(1min == 60s); static_assert(1s == 1'000ms); static_assert(1ms == 1'000us); static_assert(1us == 1'000ns); }
Output:
2 s == 2000 ms 61 s > 1 min
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/duration/operator_cmp