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의 기간으로 변환해요. ToDuration이 std::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
}