Boost logo

Boost :

Subject: [boost] [c++0x] Boost implementations of C++0x standard library components?
From: Beman Dawes (bdawes_at_[hidden])
Date: 2008-11-05 08:25:04


I want to submit an improved timer to Boost. I'd like it to use the
C++0x standard library's <chrono> and <ratio> headers.

Because it will be many years before such C++0x are universally
available, I think Boost should include an implementation of these
libraries.

Howard Hinnant has kindly contributed his demo implementation of
<chrono> and <ratio> as a starting point, so the hard stuff is already
done. I'm starting to boostify his code. That brings up questions of
header and namespace names. Presumably what we do with these two small
headers will set the pattern for any other C++0x standard library
headers we include in Boost.

Here is a strawman proposal for how we organize C++0x standard library
components we choose to add to Boost:

* Such libraries go through the regular formal review process,
although it will need to be adjusted a bit since the interface is
already known and frozen.

* C++0x standard library header naming convention is followed. Thus
these will be named <chrono> and <ratio> rather than <chrono.hpp> and
<ratio.hpp>.

* C++0x standard library namespaces are used. Thus namespace std and
std::chrono rather than boost and boost::chrono.

* Directory structure:

      boost-root
          boost
              c++0x // <ratio>, <chrono>, and other c++0x std
lib headers go here
              ...
          libs
              c++0x
                  chrono
                       build
                       doc
                       src // if needed
                       test
                  ratio
                       build
                       doc
                       src // if needed
                       test
                  ...

This allows a user to refer to say the ratio header as
<boost/c++/ratio>, <c++/ratio>, or just plain <ratio>. The user would
have to provide an additional include path of boost-root/boost or
boost-root/boost/c++0x for the second and third usages to work.

Comments?

--Beman


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk