
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