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::seconds는duration<long long, ratio<1>>예요.std::chrono::milliseconds는duration<long long, milli>예요.
duration은 operator+/-/*/..., 비교 연산자, 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 시간 모델의 기반을 이뤄요.