Namespaces
Variants

std::chrono:: high_resolution_clock

From cppreference.net
std::chrono::high_resolution_clock
헤더 파일에 정의됨 <chrono>
class high_resolution_clock ;
(C++11 이후)

클래스 std::chrono::high_resolution_clock 은 구현체가 제공하는 가장 작은 틱 주기를 가진 클록을 나타냅니다. 이것은 std::chrono::system_clock 이나 std::chrono::steady_clock 의 별칭일 수도 있고, 세 번째 독립적인 클록일 수도 있습니다.

std::chrono::high_resolution_clock TrivialClock 요구 사항을 충족합니다.

목차

멤버 타입

유형 정의
rep 클록의 지속 시간 틱 수를 나타내는 산술 타입
period 초 단위로 클록의 틱 주기를 나타내는 std::ratio 타입
duration std:: chrono :: duration < rep, period >
time_point std:: chrono :: time_point < std :: chrono :: high_resolution_clock >

멤버 상수

constexpr bool is_steady
[static]
true 틱 사이의 시간이 항상 일정한 경우, 즉 외부 클럭 조정이 있는 경우에도 now() 호출이 단조롭게 증가하는 값을 반환하는 경우, 그렇지 않으면 false
(public static member constant)

멤버 함수

[static]
클럭의 현재 값을 나타내는 std::chrono::time_point 를 반환합니다
(public static member function)

참고 사항

high_resolution_clock 사용을 둘러싼 논쟁이 있었습니다. 이 기능을 언어에 도입했다고 주장하는 Howard Hinnant은 2016년 ISO C++ Standard - Discussion 메일링 리스트 에서 이를 폐기해야 한다는 의견을 표명했습니다. 그의 근거는 표준이 high_resolution_clock std::chrono::steady_clock 이나 std::chrono::system_clock 의 별칭이 될 수 있도록 허용하기 때문에, 이를 사용하면 이점 없이 프로그램에 불확실성을 더한다는 것이었습니다. 그러나 토론에 참여한 다른 이들은 이를 지지하는 입장을 표명했는데, 예를 들어 std::chrono::steady_clock std::chrono::system_clock 모두 특정 해상도 보장을 제공하지 않기 때문에, high_resolution_clock 은 공급업체가 플랫폼의 최고 해상도 클록을 제공할 기회를 줌으로써 유용한 역할을 수행한다는 점을 근거로 들었습니다. 특히 해당 플랫폼의 std::chrono::steady_clock 이나 std::chrono::system_clock 이 최고 해상도 클록이 아닐 경우에 그러합니다.

이는 종종 std::chrono::steady_clock 또는 std::chrono::system_clock 의 별칭에 불과하지만, 어느 쪽인지는 라이브러리나 구성에 따라 달라집니다. system_clock 인 경우 단조 증가하지 않습니다(예: 시간이 역행할 수 있음). 예를 들어, 2023년 기준으로 libstdc++는 "나노초보다 높은 정밀도의 정의가 실현 가능해질 때까지" system_clock 로 별칭을 지정합니다 [1] , MSVC는 steady_clock 으로 지정합니다 [2] , libc++는 C++ 표준 라이브러리 구현이 단조 시계를 지원하는 경우 steady_clock 을 사용하고, 그렇지 않으면 system_clock 을 사용합니다 [3] .

참고 항목

시스템 전체 실시간 시계의 벽시계 시간
(클래스)
조정되지 않는 모노토닉 시계
(클래스)

외부 링크

  1. libstdc++ <chrono.h>
  2. MSVC high_resolution_clock
  3. libc++ <high_resolution_clock.h>