簡體   English   中英

是否應該使用duration_cast <>()來測量兩個chronos :: time_points之間的差異?

[英]Should you use duration_cast<>() or not to measure the difference between two chronos::time_points?

對於以下哪段代碼正確,我找不到明確的答案:

目的是每“ val”毫秒在循環中執行一些代碼。 正如我之前所了解的,您可以將持續時間替換為所需的任何單位(秒,納米等)。但是,是否需要使用duration_cast才能使其正常工作?

1)

auto m_intervalFrameCounting = std::chronos::milliseconds(val);

auto now = high_resolution_clock::now();
auto diff = now - m_lastTimeFramesCounted;
if (diff > m_intervalFrameCounting) {
    m_lastTimeFramesCounted = high_resolution_clock::now();
    //do something
}

或:2)

auto m_intervalFrameCounting = std::chronos::milliseconds(val);

auto now = high_resolution_clock::now();
auto diff = now - m_lastTimeFramesCounted;
if (std::chronos::duration_cast<milliseconds>(diff) > m_intervalFrameCounting) {
    m_lastTimeFramesCounted = high_resolution_clock::now();
    //do something
}

duration_cast用於將持續時間轉換為會導致精度下降的類型。 例如,毫秒到秒。 隱式允許秒到毫秒。 #2方法沒有理由,您希望實現什么? #1是您所追求的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM