(C++ STL) chrono : duration(단위표현법)

Posted by : at

Category : Cpp


#include <iostream>
#include <chrono>
using namespace std;
using namespace chrono;

int main()
{
    double distance = 3;        // 단위를 나타낼 수 없다

    /* ******************* */

    duration<double, ratio<1,1>> d1 = 3;        // 3m
    duration<double, ratio<1,1000>> d2(d1);     // milli 3000

    cout << d2.count() << endl; // 3000

    duration<double, ratio<1000, 1>> d3(d1);    // km

    cout << d3.count() << endl;
}
// 자주사용되는 부분은 정의됨
duration<double, ratio<1,1>> d1 = 3;    // 3m
duration<double, milli> d2(d1);         // milli 3000

cout << d2.count() << endl;             // 3000

duration<double, kilo> d3(d1);          // km

cout << d3.count() << endl;
using MilliMeter = duration<int, milli>;
using KiloMeter = duration<int, kilo>;
using Meter = duration<int, ratio<1,1>>;

Meter m(600);       // 600m
MilliMeter mm(m);   // 600000
KiloMeter km(m);    // 0.6?? -> int라서 불가능! - error

KiloMeter km = duration_cast<KiloMeter>(m);     // 0 - 버림으로 받는다
// floor, ceil, round, abs등을 C++17부터 제공한다.

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links