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

来自cppreference.com
< cpp‎ | chrono‎ | time point
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
初等字符串转换
(C++17)
(C++17)
 
 
 
在标头 <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) 检查 time_point lhsrhs 是否给定时钟的同一时间点。
3-6) 比较 time_point lhsrhs
7) 比较 time_point lhsrhs 。返回类型从 lhs.time_since_epoch() <=> rhs.time_since_epoch() 推导,从而为 Dur1Dur2 的三路比较结果类型。

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

(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 则为 ,否则为 false
6)lhs 指代的时间点后于 rhs ,或指代的时间点与 rhs 相同则为 true ,否则为 false
7) lhs.time_since_epoch() <=> rhs.time_since_epoch()

异常

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

注解

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