[英]How does std::chrono::steady_clock::now report errors?
[英]Get a double from boost::chrono::steady_clock::now()
我如何從boost :: chrono :: steady_clock :: now()獲得double值? 我不相信這有一個.count()參數。
我為什么需要這個? 我有一個方法無法解析提升返回。
boost::chrono::steady_clock::now()
返回一個boost::chrono::time_point
。 boost::chrono::time_point
有一個time_since_epoch
方法,它返回一個boost::chrono::duration
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
,這樣你的double
符合你的要求。 例如:
// Days since epoch, with millisecond (see duration_cast above) precision
double daysSinceEpoch = double(timeSinceEpoch) / (24. * 3600. * 1000.);
你可以指定double
duration
:
auto some_time = std::chrono::high_resolution_clock::now();
double duration = std::chrono::duration_cast<std::chrono::duration<double>>(some_time).count();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.