Boost.ChronoのレビューバージョンがVaultにアップロードされています。
大きな変更としては、設定によってヘッダオンリーで使えるようになった点でしょうか。
以下のように、BOOST_CHRONO_INLINEDをdefineすることで、Chronoライブラリをビルドすることなく使用できます。
#define BOOST_ERROR_CODE_HEADER_ONLY #define BOOST_CHRONO_INLINED #include <iostream> #include <cmath> #include <boost/chrono/system_clocks.hpp> typedef boost::chrono::high_resolution_clock clock_type; int main() { clock_type::time_point start = clock_type::now(); for (long i = 0; i < 10000000; ++i) std::sqrt(123.456L); boost::chrono::nanoseconds elapsed = clock_type::now() - start; std::cout << "tooks " << elapsed.count() << " nano seconds" << std::endl; }
tooks 251761327 nano seconds
Chronoが依存しているBoost.Systemライブラリも、BOOST_ERROR_CODE_HEADER_ONLYをdefineすればヘッダのみで使用できます。
他の大きな変更としては、Clockの名前とエポックの情報をとってくるclock_stringが追加されています。
(各Clockごとに特殊化されています)
#define BOOST_ERROR_CODE_HEADER_ONLY #define BOOST_CHRONO_INLINED #include <iostream> #include <cmath> #include <boost/chrono/system_clocks.hpp> #include <boost/chrono/chrono_io.hpp> using namespace boost::chrono; int main() { std::cout << clock_string<system_clock, char>::name() << std::endl; std::cout << clock_string<system_clock, char>::since() << std::endl; }
system_clock since Jan 1, 1970