以下基于文档的粗略代码为我提供了 boost.js 中提供的计时器对象的经过时间(以秒为单位)。
boost::timer::cpu_timer timer;
// ...do some work...
const boost::timer::nanosecond_type oneSecond(1000000000LL);
return timer.elapsed().user / oneSecond;
这种方法的问题是我的代码中有这个令人不舒服的幻数。在 boost 中是否有一些方法可以让我从调用elapsed().user可用的nanosecond_type值中获得经过的秒数,而我的代码中没有这个幻数?
(编辑:)结论:
根据接受的答案,我最终在我的生产代码中得到了这个片段:
boost::timer::cpu_timer timer;
// ...do some work...
auto nanoseconds = boost::chrono::nanoseconds(timer.elapsed().user + timer.elapsed().system);
auto seconds = boost::chrono::duration_cast<boost::chrono::seconds>(nanoseconds);
std::cout << seconds.count() << std::endl;