我如何从boost :: chrono :: steady_clock :: now()获得double值?我不相信这有一个.count()参数.
我为什么需要这个?我有一个方法无法解析提升返回.
boost::chrono::steady_clock::now()返回一个boost::chrono::time_point.boost::chrono::time_point有一个time_since_epoch返回a 的方法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();
Run Code Online (Sandbox Code Playgroud)
当然,这不是一个double但足够接近:你可以改变它duration_cast以获得你需要的任何精度和/或timeSinceEpoch根据自己的喜好划分,以double满足你的要求.例如:
// Days since epoch, with millisecond (see duration_cast above) precision
double daysSinceEpoch = double(timeSinceEpoch) / (24. * 3600. * 1000.);
Run Code Online (Sandbox Code Playgroud)
你可以double在里面指定duration:
auto some_time = std::chrono::high_resolution_clock::now();
double duration = std::chrono::duration_cast<std::chrono::duration<double>>(some_time).count();
Run Code Online (Sandbox Code Playgroud)