使用
std::chrono
在时间单位之间隐式转换时的标准/典型方法是什么?
例如从 ms 到 ns
// #1
constexpr uint64_t foo_ns = std::chrono::milliseconds(500) / std::chrono::nanoseconds>(1)
// #2
using std::chrono_literals::operator""ms;
using std::chrono_literals::operator""ns;
constexpr uint64_t foo_ns = 500ms / 1ns;
// #3
constexpr uint64_t foo_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(
std::chrono::milliseconds(500)).count();
# 4
// Some other method
鉴于它是隐式/无损的,在这种情况下是否需要
duration_cast
?
#包括 #包括
int main() {
using namespace std::chrono;
seconds sec(5);
milliseconds ms = duration_cast<milliseconds>(sec);
std::cout << "5 seconds is " << ms.count() << " milliseconds.\n";
return 0;
}
在C++中使用std::chrono在不同时间单位之间进行转换时,典型的做法是使用duration_cast函数。这确保了转换精确且明确。