From cppreference.com
template<classRep1,classPeriod1,classRep2,classPeriod2>constexprbooloperator==(conststd::chrono::duration<Rep1,Period1>&lhs,conststd::chrono::duration<Rep2,Period2>&rhs); (1) (since C++11)template<classRep1,classPeriod1,classRep2,classPeriod2>constexprbooloperator!=(conststd::chrono::duration<Rep1,Period1>&lhs,conststd::chrono::duration<Rep2,Period2>&rhs); (2) (since C++11)
(until C++20)template<classRep1,classPeriod1,classRep2,classPeriod2>constexprbooloperator<(conststd::chrono::duration<Rep1,Period1>&lhs,conststd::chrono::duration<Rep2,Period2>&rhs); (3) (since C++11)template<classRep1,classPeriod1,classRep2,classPeriod2>constexprbooloperator<=(conststd::chrono::duration<Rep1,Period1>&lhs,conststd::chrono::duration<Rep2,Period2>&rhs); (4) (since C++11)template<classRep1,classPeriod1,classRep2,classPeriod2>constexprbooloperator>(conststd::chrono::duration<Rep1,Period1>&lhs,conststd::chrono::duration<Rep2,Period2>&rhs); (5) (since C++11)template<classRep1,classPeriod1,classRep2,classPeriod2>constexprbooloperator>=(conststd::chrono::duration<Rep1,Period1>&lhs,conststd::chrono::duration<Rep2,Period2>&rhs); (6) (since C++11)template<classRep1,classPeriod1,classRep2,classPeriod2>requiresstd::three_way_comparable<std::common_type_t<Rep1,Rep2>>constexprautooperator<=>(conststd::chrono::duration<Rep1,Period1>&lhs,conststd::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:
1,2) Checks if lhs and rhs are equal, i.e. the number of ticks for the type common to both durations are equal.
3-6) Compares lhs to rhs, i.e. compares the number of ticks for the type common to both durations.
7) Compares 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 != operator is
from operator==.
(since C++20)Parameters
lhs - duration on the left-hand side of the operator rhs - duration on the right-hand side of the operator Return value
1)CT(lhs).count()==CT(rhs).count()
2)!(lhs==rhs)
3)CT(lhs).count()<CT(rhs).count()
4)!(rhs<lhs)
5)rhs<lhs
6)!(lhs<rhs)
7)CT(lhs).count()<=>CT(rhs).count()
Example
Run this code
#include<chrono>#include<iostream>intmain(){constexprautot1=std::chrono::seconds(2);constexprautot2=std::chrono::milliseconds(2000);ifconstexpr(t1==t2)std::cout<<t1<<" == "<<t2<<'\n';elsestd::cout<<t1<<" != "<<t2<<'\n';constexprautot3=std::chrono::seconds(61);constexprautot4=std::chrono::minutes(1);ifconstexpr(t3>t4)std::cout<<t3<<" > "<<t4<<'\n';elsestd::cout<<t3<<" <= "<<t4<<'\n';usingnamespacestd::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:
2s == 2000ms 61s > 1min