duration_duration_cast

duration_duration_cast (기간 단위 변환)

std::chrono::duration_cast는 기간을 다른 단위 타입 ToDuration으로 변환해요. 잘라내기(truncation) 방식으로 변환해요.

출처: cppreference

본문

std::chrono::duration_cast<chrono> 헤더에 정의된 함수 템플릿이에요.

template< class ToDuration, class Rep, class Period >
constexpr ToDuration duration_cast( const std::chrono::duration<Rep, Period>& d );

std::chrono::duration을 다른 타입 ToDuration의 기간으로 변환해요. ToDurationstd::chrono::duration의 특수화일 때만 오버로드 해석에 참여해요.

변환은 가능하면 정확히 수행되고, 그렇지 않으면 0 방향(음의 무한대 방향이 아닌)으로 잘라내기(truncate)로 처리돼요. 즉 나누어떨어지지 않으면 0에 가까운 쪽으로 반올림해요.

주의: 내림/올림이 필요한 값 변환에는 std::chrono::floor, std::chrono::ceil, std::chrono::round를 쓰는 게 더정확해요.

예제 (Example)

#include <chrono>
#include <iostream>

int main()
{
    using namespace std::chrono;
    std::cout << duration_cast<seconds>(milliseconds{2500}).count() << '\n'; // 2
}

더 알아보기 (Learn more)

cppreference