c++ std::chrono 隐式转换标准方法

问题描述 投票:0回答:1

使用

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

c++ time c++-chrono
1个回答
0
投票

#包括 #包括

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函数。这确保了转换精确且明确。

© www.soinside.com 2019 - 2024. All rights reserved.