如何从boost :: chrono :: steady_clock :: now()获取double值? 我不相信这有一个.count()参数。
为什么我需要这个?我有一个无法解析提升回报的方法。
答案 0 :(得分:9)
boost::chrono::steady_clock::now()
会返回boost::chrono::time_point
。boost::chrono::time_point
有一个time_since_epoch
方法,返回boost::chrono::duration
。boost::chrono::duration
有count
方法,可以为您提供标量。当我们把它们放在一起时,归结为:
auto now = boost::chrono::steady_clock::now().time_since_epoch();
auto timeSinceEpoch = boost::chrono::duration_cast<boost::chrono::milliseconds>(now).count();
当然,这不是double
但足够接近:您可以更改duration_cast
以获得所需的精度和/或根据自己的喜好划分timeSinceEpoch
,以便{{1}符合您的要求。例如:
double
答案 1 :(得分:8)
您可以在double
内指定duration
:
auto some_time = std::chrono::high_resolution_clock::now();
double duration = std::chrono::duration_cast<std::chrono::duration<double>>(some_time).count();