Boost logo

Boost :

Subject: [boost] [chrono] Boost.Chrono version 0.2.1 Bug fixes + updated documentation
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2009-12-13 17:36:07


I have updated Boost.Chrono version 0.2.1 with a lot of fixes.

Bug Fixes
* Replace INTMAX_C by BOOST_INTMAX_C until boost/cstdint;hpp ensures INTMAX_C is always defined.
* Commenting invalid operator declarations
* Take care of Boost min/max recommendations
* complete qualification when defining nested typedef duration on clocks to avoid the following compile error:
    ./boost/chrono/chrono.hpp:945: error: declaration of 'typedef class boost::chrono::duration<long long int, boost::ratio<1ll, 10000000ll> > boost::chrono::system_clock::duration'
    ./boost/chrono/chrono.hpp:458: error: changes meaning of 'duration' from 'class boost::chrono::duration<long long int, boost::ratio<1ll, 10000000ll> >'
* cleanup of simulated...
* warning removal on posix/process_clock.cpp
* disable VC++ foolishness
* Update Jamfiles to manage with dll
* removal of conversion warning in test_duration
* manage with MSVC reporting a warning instead of an error when there is an integral constant overflow
* Use STATIC_ASSERT specific macro to solve the compile failing issue
* Qualify with boost::detail boost::chrono::detail to avoid ambiguities with MSVC
* Updated documentation.

The implementation will eventually work with most C++03 conforming compilers. Tests have been run on
Windows with
* VC++ 9.0 SP1
Cygwin with
* GCC 3.4.4
* GCC 4.3.2
MinGW with
* GCC 4.4.0

Getting Boost.Chrono
You can get the last stable release of Boost.Chrono by downloading from the Boost Vault
You can also access the latest (unstable?) state from the Boost Sandbox.
Where to install Boost.Chrono?
The simple way is to decompress (or checkout from SVN) the file in your BOOST_ROOT directory.
Othesewise, if you decompress in a different directory, you will need to comment some lines, and uncomment and change others in the build/Jamfile and test/Jamfile. Sorry for this, but I have not reached yet to write a Jamfile that is able to work in both environements and use the BOOST_ROOT variable. Any help is welcome.

Building Boost.Chrono
Boost.Chrono is not a header only library. You need to compile it before use.
bjam libs/chrono/build

Building an executable that uses Boost.Chrono In addition to link with the Boost Chrono library you need also to link with the Boost System library.

In order to test you need to do.
bjam libs/chrono/test

It will be very kind if someone tested this release with other compilers (Intel) and platforms (Mac) as I'm unable to test them. I expect to been able to test on Linux/gcc-4.1.2 soon.

Of course any comments and suggestions are welcome.

Best regards,
Vicente Juan Botet Escribá

Boost list run by bdawes at, gregod at, cpdaniel at, john at