检查 std::chrono 持续时间小于 0 的惯用方法

Idiomatic way to check std::chrono duration is less than 0

我知道我能做到

if (timeLeft.count() < 0)

但我想知道最好的方法是什么,因为我也可以这样做:

if (timeLeft<std::chrono::seconds(0)) // or milliseconds or nanonseconds...

注意:我假设这两个检查是相同的,但我不是计时专家。

编辑:完整示例:

#include<chrono>
int main(){
    const std::chrono::nanoseconds timeLeft(-5);
    if(timeLeft<std::chrono::seconds(0)){
        return 47;
    }
}

edit2:std::chrono::seconds(0) 的潜在问题是新手程序员可能会认为它涉及舍入,但实际上并没有。

表达这一点的一种方法是使用 std::chrono::duration 文字 (https://en.cppreference.com/w/cpp/chrono/duration)。它简短而干净:

#include<chrono>

int main(){
    using namespace std::chrono_literals;
    
    const auto timeLeft = -5ns;
    if(timeLeft<0s){
        return 47;
    }
}