ドキュメントに基づく次の大まかなコードは、boost で提供されるタイマー オブジェクトからの経過時間を秒単位で示します。
boost::timer::cpu_timer timer;
// ...do some work...
const boost::timer::nanosecond_type oneSecond(1000000000LL);
return timer.elapsed().user / oneSecond;
この方法の問題点は、コードにこの不快なマジック ナンバーがあることです。ブースト内に、このマジック ナンバーをコードに入れずに、このマジック ナンバーを使用せずに、このマジック ナンバーを使用せずに、このマジック ナンバーをコードに含めずに、この'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;