检查 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;
}
}
我知道我能做到
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;
}
}