Boost logo

Boost :

Subject: [boost] [Review] Formal Review of Proposed Boost.Chrono Library LAST DAY TODAY
From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2010-11-15 10:03:51

Hi everyone,

The review of Vicente Botet's Chrono library is underway; TODAY IS THE

If you haven't already submitted a review, please do so today.

What is it?

Boost.Chrono aims to implement the new time facilities in C++0x, as
proposed in N2661 - A Foundation to Sleep On
( That
document provides background and motivation for key design decisions and
is the source of a good deal of information in this documentation.

See the current C++0x working draft at for
details of what was accepted.

The Boost.Chrono library provides:

    * A means to represent time durations: managed by the generic
      duration class . Examples of time durations include days, minutes,
      seconds and nanoseconds, which can be represented with a fixed
      number of clock ticks per unit. All of these units of time
      duration are united with a generic interface by the duration

    * A type for representing points in time: time_point. A time_point
      represents an epoch plus or minus a duration. The library leaves
      epochs unspecified. A time_point is associated with a clock.

    * Several clocks, some of which may not be available on a particular
      platform: system_clock, monotonic_clock and
      high_resolution_clock. A clock is a pairing of a time_point and
      duration, and a function which returns a time_point representing

    * To make the timing facilities more generally useful, Boost.Chrono
      provides a number of additional clocks that are thin wrappers
      around the operating system's time APIs, thereby allowing the
      extraction of read (wall clock) time, user CPU time, system CPU

     - process_real_cpu_clock, captures real (wall clock) CPU times.
     - process_user_cpu_clock, captures user-CPU times.
     - process_system_cpu_clock, captures system-CPU times.
     - A tuple-like class __process_cpuclock_, that captures real,
       user-CPU, and system-CPU times together.
     - A thread_clock thread monotonic clock, when supported by a platform.

    * Boost.Chrono also includes typeof registration for duration and
      time_point to permit using emulated auto with C++03 compilers.

    * Boost.Chrono also provides I/O for duration and time_point. It
      builds on <boost/ratio/ratio_io.hpp> to provide readable and
      flexible formatting and parsing for types in
      <boost/chrono.hpp> (subject to Vicente rewriting the parsing code
      under the BSL). The duration unit names can be customized
      through a new facet: duration_punct.

Getting the library
The latest version of this library may be downloaded from


Boost.Chrono depends on Boost.Ratio
and optionaly Boost.System Header Only

and the docs may be viewed here


You can get all these information also (which should avoid some long
links) from

Writing a review

If you feel this is an interesting library, then please submit your
review to the developer list (preferably), or to the review manager.

Here are some questions you might want to answer in your review:

- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any problems?
- How much effort did you put into your evaluation? A glance? A quick
- reading? In-depth study?
- Are you knowledgeable about the problem domain?

And finally, every review should answer this question:

- Do you think the library should be accepted as a Boost library?

Be sure to say this explicitly so that your other comments don't
obscure your overall opinion.

Review Manager for the proposed Boost.Chrono library

Author of C++ Concurrency in Action
just::thread C++0x thread library   
Just Software Solutions Ltd
15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK. Company No. 5478976

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