프로그래밍
1일 전
C++의 라이브러리는 기본 제공하는 여러 시계(system_clock, steady_clock 등) 외에 사용자가 직접 커스텀 클록을 구현할 수 있도록 지원하며, 이는 시뮬레이션, 테스트, 가상 시간 제어, 외부 시간 소스 연동 등 다양한 상황에서 유용하다.
커스텀 클록은 rep, period, duration, time_point, now() 함수, is_steady 멤버를 갖춘 간단한 구조체로 정의되며, 예시로는 시간 흐름을 수동으로 조작하는 ManualClock과 시간 속도를 조절하는 ScaledClock이 있다.
이들은 기존 타입과 완벽하게 호환되며, 표준 클록과 자동 변환은 지원하지 않으므로 변환 규칙을 직접 정의해야 하며, 스레드 안전성, epoch 일관성, is_steady 설정 등을 신중히 고려해야 한다.