duration_operator_cmp

duration_operator_cmp (기간 비교 연산)

std::chrono::duration에 대한 비교 연산자예요. 두 기간을 ==, !=, <, <=, >, >=, <=>로 비교해요.

출처: cppreference

본문

std::chrono::duration의 비교 연산자는 <chrono> 헤더에 정의되어 있어요.

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 );

template< class Rep1, class Period1, class Rep2, class Period2 >
constexpr /* three-way */ operator<=>( const std::chrono::duration<Rep1, Period1>& lhs,
                                       const std::chrono::duration<Rep2, Period2>& rhs );

두 기간을 비교해요. CTstd::common_type<duration<Rep1, Period1>, duration<Rep2, Period2>>::type이라고 할 때:

  • ==는 두 기간의 공통 타입에서의 틱 수가 같은지 검사해요.
  • <=>는 두 기간을 공통 타입으로 변환해 3방향 비교해요.

C++20의 우주선 연산자(<=>)는 <, <=, >, >=도 자동으로 제공해요.

예제 (Example)

#include <chrono>
#include <iostream>

int main()
{
    using namespace std::chrono;
    std::cout << std::boolalpha;
    std::cout << (seconds{1} == milliseconds{1000}) << '\n';  // true
    std::cout << (seconds{1} < milliseconds{1500}) << '\n';   // true
}

더 알아보기 (Learn more)

cppreference