operator==,!=,<,<=,>,>=,<=>(std::chrono::time_point)

来自cppreference.com
< cpp‎ | chrono‎ | time point


 
 
 
 
在标头 <chrono> 定义
(1)
template< class Clock, class Dur1, class Dur2 >

bool operator==( const std::chrono::time_point<Clock,Dur1>& lhs,

                 const std::chrono::time_point<Clock,Dur2>& rhs );
(C++11 起)
(C++14 前)
template< class Clock, class Dur1, class Dur2 >

constexpr bool operator==( const std::chrono::time_point<Clock,Dur1>& lhs,

                           const std::chrono::time_point<Clock,Dur2>& rhs );
(C++14 起)
(2)
template< class Clock, class Dur1, class Dur2 >

bool operator!=( const std::chrono::time_point<Clock,Dur1>& lhs,

                 const std::chrono::time_point<Clock,Dur2>& rhs );
(C++11 起)
(C++14 前)
template< class Clock, class Dur1, class Dur2 >

constexpr bool operator!=( const std::chrono::time_point<Clock,Dur1>& lhs,

                           const std::chrono::time_point<Clock,Dur2>& rhs );
(C++14 起)
(C++20 前)
(3)
template< class Clock, class Dur1, class Dur2 >

bool operator<( const std::chrono::time_point<Clock,Dur1>& lhs,

                const std::chrono::time_point<Clock,Dur2>& rhs );
(C++11 起)
(C++14 前)
template< class Clock, class Dur1, class Dur2 >

constexpr bool operator<( const std::chrono::time_point<Clock,Dur1>& lhs,

                          const std::chrono::time_point<Clock,Dur2>& rhs );
(C++14 起)
(4)
template< class Clock, class Dur1, class Dur2 >

bool operator<=( const std::chrono::time_point<Clock,Dur1>& lhs,

                 const std::chrono::time_point<Clock,Dur2>& rhs );
(C++11 起)
(C++14 前)
template< class Clock, class Dur1, class Dur2 >

constexpr bool operator<=( const std::chrono::time_point<Clock,Dur1>& lhs,

                           const std::chrono::time_point<Clock,Dur2>& rhs );
(C++14 起)
(5)
template< class Clock, class Dur1, class Dur2 >

bool operator>( const std::chrono::time_point<Clock,Dur1>& lhs,

                const std::chrono::time_point<Clock,Dur2>& rhs );
(C++11 起)
(C++14 前)
template< class Clock, class Dur1, class Dur2 >

constexpr bool operator>( const std::chrono::time_point<Clock,Dur1>& lhs,

                          const std::chrono::time_point<Clock,Dur2>& rhs );
(C++14 起)
(6)
template< class Clock, class Dur1, class Dur2 >

bool operator>=( const std::chrono::time_point<Clock,Dur1>& lhs,

                 const std::chrono::time_point<Clock,Dur2>& rhs );
(C++11 起)
(C++14 前)
template< class Clock, class Dur1, class Dur2 >

constexpr bool operator>=( const std::chrono::time_point<Clock,Dur1>& lhs,

                           const std::chrono::time_point<Clock,Dur2>& rhs );
(C++14 起)
template< class Clock, class Dur1, std::three_way_comparable_with<Dur1> Dur2 >

constexpr auto operator<=>( const std::chrono::time_point<Clock,Dur1>& lhs,

                            const std::chrono::time_point<Clock,Dur2>& rhs );
(7)(C++20 起)

比较两个时间点。通过对这些时间点 time_since_epoch() 的结果进行比较来完成。

1,2) 检查时间点 lhsrhs 是否指代给定时钟的同一时间点。
3-6) 比较时间点 lhsrhs
7) 比较时间点 lhsrhs。返回类型从 lhs.time_since_epoch() <=> rhs.time_since_epoch() 推导,从而为 Dur1Dur2 的三路比较结果类型。

!= 运算符从 operator== 运算符合成

(C++20 起)

参数

lhs, rhs-要比较的 time_point

返回值

1)lhsrhs 指代同一时间点则为 true,否则为 false
2)lhsrhs 指代不同时间点则为 true,否则为 false
3)lhs 指代的时间点先于rhs 则为 true,否则为 false
4)lhs 指代的时间点先于rhs,或指代的时间点与 rhs 相同则为 true,否则为 false
5)lhs 指代的时间点后于rhs 则为 true,否则为 false
6)lhs 指代的时间点后于rhs,或指代的时间点与 rhs 相同则为 true,否则为 false
7)lhs.time_since_epoch() <=> rhs.time_since_epoch()

异常

可能会抛出由实现定义的异常。

注解

time_point 的双路比较运算符曾在 C++11 中不是 constexpr,这已在 C++14 中更正。