duration

duration (시간 간격을 나타내는 템플릿)

틱(tick)의 개수와 틱 주기(period)로 시간 간격을 나타내는 클래스 템플릿이에요. <chrono> 헤더, C++11부터.

출처: cppreference

본문

std::chrono::duration은 시간 간격을 나타내요.

template<
    class Rep,
    class Period = std::ratio<1>
> class duration;
  • Rep: 틱 개수의 타입(정수 또는 부동소수점). 저장되는 유일한 데이터예요.
  • Period: 틱 주기. 한 틱에서 다음 틱까지의 시간(초)을 나타내는 컴파일 타임 유리수예요.

duration이 저장하는 유일한 데이터는 Rep 타입의 틱 개수예요. Rep가 부동소수점이면 소수 틱도 표현할 수 있어요. Period는 각 인스턴스화에 타입의 일부로 포함돼요.

예를 들어:

  • std::chrono::secondsduration<long long, ratio<1>> 예요.
  • std::chrono::millisecondsduration<long long, milli>예요.

durationoperator+/-/*/..., 비교 연산자, duration_cast, 변환 생성자를 제공해요.

auto sec = std::chrono::seconds{90};
auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(sec);  // 90000ms

단위 간 변환은 duration_cast로 정밀도를 명시적으로 절사해요. 시간 계산의 기본 단위로서, 시점(time_point)과 시계(clock)와 함께 쓰여 chrono 시간 모델의 기반을 이뤄요.

더 알아보기 (Learn more)

cppreference