Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r58989 - in sandbox/chrono/libs/chrono: doc doc/html doc/html/boost_chrono doc/html/boost_chrono/appendices doc/html/boost_chrono/reference example src
From: vicente.botet_at_[hidden]
Date: 2010-01-13 18:00:55


Author: viboes
Date: 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
New Revision: 58989
URL: http://svn.boost.org/trac/boost/changeset/58989

Log:
Boost.Chrono: Version 0.3.0, Added doc for new features
* process_cpu_clock and formatter
* digital_time and formatter

Text files modified:
   sandbox/chrono/libs/chrono/doc/chrono.qbk | 253 +++++++++++++++++++++++++++++++++------
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/history.html | 54 ++++++--
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/implementation.html | 4
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/rationale.html | 8
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/todo.html | 20 +-
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference.html | 12 +
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/cpp0x.html | 86 +++++++++---
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/process_cpu_related.html | 109 ++++++++++------
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatch_reporters.html | 199 +++++++++++++++++++++++++++++++
   sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatches.html | 78 ------------
   sandbox/chrono/libs/chrono/doc/html/index.html | 2
   sandbox/chrono/libs/chrono/example/stopwatch_example.cpp | 5
   sandbox/chrono/libs/chrono/src/process_clock.cpp | 1
   13 files changed, 608 insertions(+), 223 deletions(-)

Modified: sandbox/chrono/libs/chrono/doc/chrono.qbk
==============================================================================
--- sandbox/chrono/libs/chrono/doc/chrono.qbk (original)
+++ sandbox/chrono/libs/chrono/doc/chrono.qbk 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -923,8 +923,7 @@
         struct ratio_less
             : public boost::integral_constant<bool, [/see below] > {};
 
-If R1::num * R2::den < R2::num * R1::den, ratio_less derives from true_type, else derives from false_type. Implementations are permitted to use more complex algorithms to compute the above relationship to avoid overflow. If the implementation is not able to avoid overflow, a diagnostic is emitted.
-
+If R1::num * R2::den < R2::num * R1::den, ratio_less derives from true_type, else derives from false_type.
 
     template <class R1, class R2> struct ratio_not_equal
         : public boost::integral_constant<bool, !ratio_equal<R1, R2>::value> {};
@@ -1262,7 +1261,7 @@
 
     }}
 
-Rep must be an arithmetic type, or a class emulating an arithmetic type. If `duration` is instantiated with the type of `Rep` being a `duration`, a diagnostic is required.
+Rep must be an arithmetic type, or a class emulating an arithmetic type, compile diagnostic otherwise. If `duration` is instantiated with the type of `Rep` being a `duration`, compile diagnostic is issued.
 
 Period must be an instantiation of `ratio`, compile diagnostic otherwise.
 
@@ -1283,12 +1282,12 @@
     template <class Rep2>
     BOOST_CONSTEXPR explicit duration(const Rep2& r);
 
-[*Requires:] `Rep2` is implicitly convertible to `rep`, and
+[*Remarks:] `Rep2` is implicitly convertible to `rep`, and
 
 * `treat_as_floating_point<rep>::value` is `true`, or
 * `!treat_as_floating_point<rep>::value && !treat_as_floating_point<Rep2>::value` is `true`.
 
-A diagnostic is required if this requirement is not met. [*Note:] This requirement prevents construction of an integral-based `duration` with a floating point representation. Such a construction could easily lead to confusion about the value of the `duration`.
+If these constraints are not met, this constructor shall not participate in overload resolution. [*Note:] This requirement prevents construction of an integral-based `duration` with a floating point representation. Such a construction could easily lead to confusion about the value of the `duration`.
 
 [*Example:]
 
@@ -1305,11 +1304,7 @@
     template <class Rep2, class Period2>
     BOOST_CONSTEXPR duration(const duration<Rep2, Period2>& d);
 
-[*Requires:] `treat_as_floating_point<rep>::value`, or `ratio_divide<Period2, period>::type::den == 1`.
-
- A diagnostic is required if this requirement is not met.
-
-[*note] This requirement prevents implicit truncation error when converting between integral-based `duration`s. Such a construction could easily lead to confusion about the value of the `duration`.
+[*Remarks:] `treat_as_floating_point<rep>::value`, or `ratio_divide<Period2, period>::type::den == 1`, else this constructor shall not participate in overload resolution. [*note] This requirement prevents implicit truncation error when converting between integral-based `duration`s. Such a construction could easily lead to confusion about the value of the `duration`.
 
 [*Example:]
 
@@ -1514,6 +1509,28 @@
 
 [endsect]
 
+
+[section:duration_operator_mod_1 Non-Member function `operator%(duration,Rep2)`]
+ template <class Rep1, class Period, class Rep2>
+ duration<typename common_type<Rep1, Rep2>::type, Period>
+ operator%(const duration<Rep1, Period>& d, const Rep2& s);
+
+[*Remarks] This function will not participate in overload resolution unless Rep2 shall be implicitly convertible to CR(Rep1, Rep2) and Rep2 shall not be an instantiation of duration.
+
+[*Returns:] duration<CR(Rep1,Rep2), Period>(d) %= s.
+[endsect]
+
+[section:duration_operator_mod_2 Non-Member function `operator%(duration,duration)`]
+
+ template <class Rep1, class Period1, class Rep2, class Period2>
+ typename common_type<duration<Rep1, Period1>, duration<Rep2, Period2> >::type
+ operator%(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
+
+[*Remarks] This function will not participate in overload resolution unless
+
+[*Returns:] CD(lhs) %= CD(rhs)
+
+[endsect]
 [endsect]
 
 [section duration comparaisons]
@@ -1889,7 +1906,7 @@
 [section Process CPU related]
 
 [/==================================================================]
-[section:process_clocks_hpp Header `<boost/chrono/process_clocks.hpp>`]
+[section:process_cpu_clocks_hpp Header `<boost/chrono/process_cpu_clocks.hpp>`]
 [/==================================================================]
 
 Knowing how long a program takes to execute is useful in both test and production environments. It is also helpful if such timing information is broken down into real (wall clock) time, CPU time spent by the user, and CPU time spent by the operating system servicing user requests.
@@ -1899,7 +1916,7 @@
         class process_real_cpu_clock;
         class process_user_cpu_clock;
         class process_system_cpu_clock;
- class process_clocks;
+ class process_cpu_clock;
 
     } }
 
@@ -1962,34 +1979,58 @@
 
 [endsect]
 
-[section Class `process_clocks`]
+[section Class `process_cpu_clock`]
 
-`process_clocks` can be considered as a `tuple<process_real_cpu_clock, process_user_cpu_clock, process_system_cpu_clock>`. Obviously it doesn't satisfy the Clock Requirements.
+`process_clocks` can be considered as a `tuple<process_real_cpu_clock, process_user_cpu_clock, process_system_cpu_clock>`.
 
 `process_clocks` provides a thin wrapper around the operating system's process timer API. For POSIX-like systems, that's the times() function, while for Windows, it's the GetProcessTimes() function.
 
 The process relative real, user and system current time can be obtained at once by calling `process_clocks::now()`.
 
 
- class process_clocks {
- public:
- typedef nanoseconds duration;
- typedef duration::rep rep;
- typedef duration::period period;
- typedef chrono::time_point<process_clocks> time_point;
- static const bool is_monotonic = true;
+ class BOOST_CHRONO_DECL process_cpu_clock
+ {
+ public:
+ struct times ;
 
- struct durations;
- static void now( process_clocks::durations & times,
- system::error_code & ec = system::throws );
- };
+ typedef duration<times, nano> duration;
+ typedef duration::rep rep;
+ typedef duration::period period;
+ typedef chrono::time_point<process_cpu_clock> time_point;
+ static const bool is_monotonic = true;
 
-[section Class `durations`]
+ static time_point now( system::error_code & ec = system::throws );
+ };
 
- struct durations {
- process_clocks::duration real; // real (i.e wall clock) time
- process_clocks::duration user; // user cpu time
- process_clocks::duration system; // system cpu time
+ template <>
+ struct duration_values<process_cpu_clock::times>
+ {
+ static process_cpu_clock::times zero();
+ static process_cpu_clock::times max();
+ static process_cpu_clock::times min();
+ };
+
+[section Class `times`]
+
+ struct times : arithmetic<times>, less_than_comparable<times>
+ {
+ process_real_cpu_clock::rep real; // real (i.e wall clock) time
+ process_user_cpu_clock::rep user; // user cpu time
+ process_system_cpu_clock::rep system; // system cpu time
+
+ times();
+ times(
+ process_real_cpu_clock::rep r,
+ process_user_cpu_clock::rep u,
+ process_system_cpu_clock::rep s);
+
+ bool operator==(times const& rhs);
+
+ times operator+=(times const& rhs);
+ times operator-=(times const& rhs);
+ times operator*=(times const& rhs);
+ times operator/=(times const& rhs);
+ bool operator<(times const & rhs) const;
         };
 
 [endsect]
@@ -2431,6 +2472,7 @@
 
 [endsect]
 
+[/
 [/==================================================================]
 [section:process_stopwatches_hpp Header `<boost/chrono/process_stopwatches.hpp>`]
 [/==================================================================]
@@ -2480,6 +2522,7 @@
 
 [endsect]
 [endsect]
+]
 [endsect]
 [section Stopwatch Reporters]
 
@@ -2613,6 +2656,51 @@
 
 [endsect]
 
+[/==================================================]
+[section:digital_time_hpp Header `<boost/chrono/digital_time.hpp>`]
+[/==================================================]
+
+ namespace boost { namespace chrono {
+ class digital_time;
+ }}
+
+[section Class `digital_time`]
+
+ class digital_time {
+ public:
+ typedef boost::chrono::duration<boost::int_least32_t, ratio<24*3600> > days;
+ typedef boost::chrono::hours hours;
+ typedef boost::chrono::minutes minutes;
+ typedef boost::chrono::seconds seconds;
+ typedef boost::chrono::nanoseconds nanoseconds;
+
+ days days_;
+ hours hours_;
+ minutes minutes_;
+ seconds seconds_;
+ nanoseconds nanoseconds_;
+
+ template <class Rep, class Period>
+ static days get_days(const boost::chrono::duration<Rep, Period>& d);
+
+ template <class Rep, class Period>
+ static hours get_hours(const boost::chrono::duration<Rep, Period>& d);
+
+ template <class Rep, class Period>
+ static minutes get_minutes(const boost::chrono::duration<Rep, Period>& d);
+
+ template <class Rep, class Period>
+ static seconds get_seconds(const boost::chrono::duration<Rep, Period>& d);
+
+ template <class Rep, class Period>
+ static nanoseconds get_nanoseconds(const boost::chrono::duration<Rep, Period>& d);
+
+ template <class Rep, class Period>
+ explicit digital_time(const boost::chrono::duration<Rep, Period>& d);
+ };
+
+[endsect]
+[endsect]
 
 [/==================================================]
 [section:stopwatch_formatter_hpp Header `<boost/chrono/stopwatch_formatter.hpp>`]
@@ -2685,6 +2773,7 @@
 
 [endsect]
 
+[
 [/==================================================================]
 [section:process_process_stopwatches_reporter_hpp Header `<boost/chrono/process_stopwatches_reporter.hpp>`]
 [/==================================================================]
@@ -2757,7 +2846,87 @@
 [endsect]
 
 [endsect]
+]
+
+[/==================================================================]
+[section:time_formatter_hpp Header `<boost/chrono/time_formatter.hpp>`]
+[/==================================================================]
+
+
+ namespace boost { namespace chrono {
+
+ class time_formatter;
+
+ } }
 
+[section Class `time_formatter`]
+
+ class time_formatter {
+ public:
+ static std::ostream & m_cout();
+ static const int m_default_places = 3;
+ static const char * default_format;
+ static int default_places() { return m_default_places; }
+
+ template <class Stopwatch >
+ static void show_time( Stopwatch & stopwatch_
+ , const char * format, int places, std::ostream & os
+ , system::error_code & ec);
+ };
+
+The default places is given by default_places and is 3.
+The default format is "\\nreal %rs, cpu %cs (%p%), user %us, system %ss\\n", where
+
+* `%r` : real process clock
+* `%u` : user process clock
+* `%s` : system process clock
+* `%c` : user+system process clock
+* `%p` : percentage (user+system)/real process clock
+
+All the units are given using the suffix "s" following the System International d'Unites Std.
+
+[endsect]
+
+[endsect]
+
+[/==================================================================]
+[section:digital_time_formatter_hpp Header `<boost/chrono/digital_time_formatter.hpp>`]
+[/==================================================================]
+
+
+ namespace boost { namespace chrono {
+
+ class digital_time_formatter;
+
+ } }
+
+[section Class `time_formatter`]
+
+ class time_formatter {
+ public:
+ static std::ostream & m_cout();
+ static const int m_default_places = 3;
+ static const char * default_format;
+ static int default_places() { return m_default_places; }
+
+ template <class Stopwatch >
+ static void show_time( Stopwatch & stopwatch_
+ , const char * format, int places, std::ostream & os
+ , system::error_code & ec);
+ };
+
+The default places is given by default_places and is 3.
+The default format is "\\n%d days(s) %h:%m:%s.%n\\n", where
+
+* `%d` : days
+* `%h` : hours
+* `%m` : minutes
+* `%s` : seconds
+* `%n` : nanoseconds
+
+[endsect]
+
+[endsect]
 
 [endsect]
 [section Deprecated Headers]
@@ -2822,6 +2991,7 @@
 [endsect]
 [endsect]
 
+
 [/==================================================================]
 [section:process_times_hpp Deprecated Header `<boost/chrono/process_times.hpp>`]
 [/==================================================================]
@@ -3970,16 +4140,23 @@
 [section [*Version 0.3.0, January 9, 2010] ['New stopwatch feature + Bug fixes]]
 [*Features:]
 
-* Added independent cpu clocks for real, user, system process CPU time.
-* Added new Stopwatch concept measuring elapsed time between different points in time associated to the operations start, stop, suspend and resume.
+* Added independent process cpu clocks for real, user, system process CPU time
+* Added global process cpu clock for real, user, system process CPU time
+* Added digital_time (looking for a better name)
+* Added new *Stopwatch* concept measuring elapsed time between different points in time associated to the operations start, stop, suspend and resume.
 * Added stopwatch is a model Stopwatch measuring the elapsed time between the start and the stop operations.
 * Added stopwatch_accumulator is a model Stopwatch allowing to accumulate several time samples and give the average, ...
 * Added scoped helper classes allowing to pairwise start/stop operations, suspend/resume and resume/suspend a Stopwatch.
-* Added new Stopwatch Formatter concept
+* Added new stopwatch *Formatter* concept
+ * Added stopwatch formatter "%ds"
+ * Added stopwatch accumulator formatter "%c times, sum=%ss, min=%ms, max=%Ms, mean=%as"
+ * Added time formatter "real %rs, cpu %cs (%p%), user %us, system %ss"
+ * Added digital_time formatter "%d days(s) %h:%m:%s.%n"
 * stopwatch_reporter is a convenient generic class reporting elapsed time for the Stopwatch concept.
-* To be coherent with the preceding additions,
- * process_times.hpp has been renamed, see process_clocks.hpp, process_stopwhatches.hpp and process_stopwhatches_reporter.hpp. The file process_times.hpp and its associated types, process_times, process_clock, process_timer and run_timer are preserved for backward compatibility but it is now deprecated, until inclusion of the library in Boost.
- * timer.hpp has been nenamed, see stopwatch.hpp. The file timer.hpp and is associated timer class are preserved for backward compatibility but it is now deprecated, until inclusion of the library in Boost.
+* The old classes process_times, process_clock, process_timer, timer and run_timer are deprecated as the preceding additions are more generic. However for backward compatibility they preserved until inclusion of the library in Boost. Next follows the equivalences:
+ * timer<> ~ stopwatch<>
+ * process_timer ~ stopwatch<process_cpu_clock>
+ * run_timer ~ stopwatch_reporter<stopwatch<process_cpu_clock>, time_formatter>
 
 [*Bug Fixes]
 
@@ -4221,7 +4398,7 @@
 * Fully implement error handling, with test cases.
 * Consider issues raised by Michael Marcin:
 
- In the past I`ve seen QueryPerformanceCounter give incorrect results,
+ In the past I've seen QueryPerformanceCounter give incorrect results,
     especially with SpeedStep processors on laptops. This was many years ago and
     might have been fixed by service packs and drivers.
 
@@ -4235,7 +4412,7 @@
     I know some people SetThreadAffinityMask to 1 for the current thread call
     their QueryPerformance* functions then restore SetThreadAffinityMask. This
     seems horrible to me because it forces your program to jump to another
- physical processor if it isn`t already on cpu0 but they claim it worked well
+ physical processor if it isn't already on cpu0 but they claim it worked well
     in practice because they called the timing functions infrequently.
 
     In the past I have chosen to use timeGetTime with timeBeginPeriod(1) for

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/history.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/history.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/history.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -46,12 +46,19 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- Added independent cpu clocks for real, user, system process CPU time.
+ Added independent process cpu clocks for real, user, system process CPU
+ time
           </li>
 <li>
- Added new Stopwatch concept measuring elapsed time between different
- points in time associated to the operations start, stop, suspend and
- resume.
+ Added global process cpu clock for real, user, system process CPU time
+ </li>
+<li>
+ Added digital_time (looking for a better name)
+ </li>
+<li>
+ Added new <span class="bold"><strong>Stopwatch</strong></span> concept measuring
+ elapsed time between different points in time associated to the operations
+ start, stop, suspend and resume.
           </li>
 <li>
             Added stopwatch is a model Stopwatch measuring the elapsed time between
@@ -66,26 +73,43 @@
             suspend/resume and resume/suspend a Stopwatch.
           </li>
 <li>
- Added new Stopwatch Formatter concept
- </li>
+ Added new stopwatch <span class="bold"><strong>Formatter</strong></span> concept
+ <div class="itemizedlist"><ul type="circle">
+<li>
+ Added stopwatch formatter "%ds"
+ </li>
+<li>
+ Added stopwatch accumulator formatter "%c times, sum<code class="literal">%ss,
+ min</code>%ms, max<code class="literal">%Ms, mean</code>%as"
+ </li>
+<li>
+ Added time formatter "real %rs, cpu %cs (%p%), user %us, system
+ %ss"
+ </li>
+<li>
+ Added digital_time formatter "%d days(s) %h:%m:%s.%n"
+ </li>
+</ul></div>
+</li>
 <li>
             stopwatch_reporter is a convenient generic class reporting elapsed time
             for the Stopwatch concept.
           </li>
 <li>
- To be coherent with the preceding additions,
+ The old classes process_times, process_clock, process_timer, timer and
+ run_timer are deprecated as the preceding additions are more generic.
+ However for backward compatibility they preserved until inclusion of
+ the library in Boost. Next follows the equivalences:
             <div class="itemizedlist"><ul type="circle">
 <li>
- process_times.hpp has been renamed, see process_clocks.hpp, process_stopwhatches.hpp
- and process_stopwhatches_reporter.hpp. The file process_times.hpp
- and its associated types, process_times, process_clock, process_timer
- and run_timer are preserved for backward compatibility but it is
- now deprecated, until inclusion of the library in Boost.
+ timer&lt;&gt; ~ stopwatch&lt;&gt;
+ </li>
+<li>
+ process_timer ~ stopwatch&lt;process_cpu_clock&gt;
               </li>
 <li>
- timer.hpp has been nenamed, see stopwatch.hpp. The file timer.hpp
- and is associated timer class are preserved for backward compatibility
- but it is now deprecated, until inclusion of the library in Boost.
+ run_timer ~ stopwatch_reporter&lt;stopwatch&lt;process_cpu_clock&gt;,
+ time_formatter&gt;
               </li>
 </ul></div>
 </li>

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/implementation.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/implementation.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/implementation.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -31,7 +31,7 @@
       Implementation Notes</a>
 </h3></div></div></div>
 <a name="boost_chrono.appendices.implementation.why_does_process_stopwatches_reporter_only_display_millisecond_place_precision_when_the_underlying_timer_has_nanosecond_precision_"></a><h4>
-<a name="id4901930"></a>
+<a name="id4904654"></a>
         <a href="implementation.html#boost_chrono.appendices.implementation.why_does_process_stopwatches_reporter_only_display_millisecond_place_precision_when_the_underlying_timer_has_nanosecond_precision_">Why
         does process_stopwatches_reporter only display millisecond place precision
         when the underlying timer has nanosecond precision?</a>
@@ -42,7 +42,7 @@
         dangerously.
       </p>
 <a name="boost_chrono.appendices.implementation.why_does_process_stopwatches_reporter_sometimes_report_more_cpu_seconds_than_real_seconds_"></a><h4>
-<a name="id4901969"></a>
+<a name="id4904693"></a>
         <a href="implementation.html#boost_chrono.appendices.implementation.why_does_process_stopwatches_reporter_sometimes_report_more_cpu_seconds_than_real_seconds_">Why
         does process_stopwatches_reporter sometimes report more cpu seconds than
         real seconds?</a>

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/rationale.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/rationale.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/rationale.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -33,7 +33,7 @@
         are an extract from this document.
       </p>
 <a name="boost_chrono.appendices.rationale.is_it_possible_for_the_user_to_pass_a__code__phrase_role__identifier__duration__phrase___code__to_a_function_with_the_units_being_ambiguous_"></a><h4>
-<a name="id4900736"></a>
+<a name="id4903461"></a>
         <a href="rationale.html#boost_chrono.appendices.rationale.is_it_possible_for_the_user_to_pass_a__code__phrase_role__identifier__duration__phrase___code__to_a_function_with_the_units_being_ambiguous_">Is
         it possible for the user to pass a <code class="computeroutput"><span class="identifier">duration</span></code>
         to a function with the units being ambiguous?</a>
@@ -45,7 +45,7 @@
 <pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="number">3</span><span class="special">);</span> <span class="comment">// Will not compile, 3 is not implicitly convertible to any `duration`
 </span></pre>
 <a name="boost_chrono.appendices.rationale.why_duration_needs_operator_"></a><h4>
-<a name="id4900825"></a>
+<a name="id4903550"></a>
         <a href="rationale.html#boost_chrono.appendices.rationale.why_duration_needs_operator_">Why
         duration needs operator%</a>
       </h4>
@@ -73,7 +73,7 @@
 <span class="special">};</span>
 </pre>
 <a name="boost_chrono.appendices.rationale.why_ratio_needs_copyconstruction_and_assignment_from_ratios_having_the_same_normalized_form"></a><h4>
-<a name="id4901405"></a>
+<a name="id4904130"></a>
         <a href="rationale.html#boost_chrono.appendices.rationale.why_ratio_needs_copyconstruction_and_assignment_from_ratios_having_the_same_normalized_form">Why
         ratio needs CopyConstruction and Assignment from ratios having the same normalized
         form</a>
@@ -101,7 +101,7 @@
         ratio&lt;1,3&gt; and the compilation succeeds.
       </p>
 <a name="boost_chrono.appendices.rationale.why_ratio_needs_the_nested_normalizer_typedef_type"></a><h4>
-<a name="id4901718"></a>
+<a name="id4904442"></a>
         <a href="rationale.html#boost_chrono.appendices.rationale.why_ratio_needs_the_nested_normalizer_typedef_type">Why
         ratio needs the nested normalizer typedef type</a>
       </h4>

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/todo.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/todo.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/appendices/todo.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -27,7 +27,7 @@
 <a name="boost_chrono.appendices.todo"></a> Appendix F: Future plans
 </h3></div></div></div>
 <a name="boost_chrono.appendices.todo.tasks_to_do_before_review"></a><h4>
-<a name="id4902642"></a>
+<a name="id4905367"></a>
         <a href="todo.html#boost_chrono.appendices.todo.tasks_to_do_before_review">Tasks
         to do before review</a>
       </h4>
@@ -39,28 +39,28 @@
           Consider issues raised by Michael Marcin:
         </li>
 </ul></div>
-<pre class="programlisting"><span class="identifier">In</span> <span class="identifier">the</span> <span class="identifier">past</span> <span class="identifier">I</span><span class="error">`</span><span class="identifier">ve</span> <span class="identifier">seen</span> <span class="identifier">QueryPerformanceCounter</span> <span class="identifier">give</span> <span class="identifier">incorrect</span> <span class="identifier">results</span><span class="special">,</span>
-<span class="identifier">especially</span> <span class="identifier">with</span> <span class="identifier">SpeedStep</span> <span class="identifier">processors</span> <span class="identifier">on</span> <span class="identifier">laptops</span><span class="special">.</span> <span class="identifier">This</span> <span class="identifier">was</span> <span class="identifier">many</span> <span class="identifier">years</span> <span class="identifier">ago</span> <span class="keyword">and</span>
-<span class="identifier">might</span> <span class="identifier">have</span> <span class="identifier">been</span> <span class="identifier">fixed</span> <span class="identifier">by</span> <span class="identifier">service</span> <span class="identifier">packs</span> <span class="keyword">and</span> <span class="identifier">drivers</span><span class="special">.</span>
+<pre class="programlisting"><span class="identifier">In</span> <span class="identifier">the</span> <span class="identifier">past</span> <span class="identifier">I</span><span class="char">'ve seen QueryPerformanceCounter give incorrect results,
+especially with SpeedStep processors on laptops. This was many years ago and
+might have been fixed by service packs and drivers.
 
-<span class="identifier">Typically</span> <span class="identifier">you</span> <span class="identifier">check</span> <span class="identifier">the</span> <span class="identifier">results</span> <span class="identifier">of</span> <span class="identifier">QPC</span> <span class="identifier">against</span> <span class="identifier">GetTickCount</span> <span class="identifier">to</span> <span class="identifier">see</span> <span class="keyword">if</span> <span class="identifier">the</span>
-<span class="identifier">results</span> <span class="identifier">are</span> <span class="identifier">reasonable</span><span class="special">.</span>
-<span class="identifier">http</span><span class="special">://</span><span class="identifier">support</span><span class="special">.</span><span class="identifier">microsoft</span><span class="special">.</span><span class="identifier">com</span><span class="special">/</span><span class="identifier">kb</span><span class="special">/</span><span class="number">274323</span>
+Typically you check the results of QPC against GetTickCount to see if the
+results are reasonable.
+http://support.microsoft.com/kb/274323
 
-<span class="identifier">I</span><span class="error">'</span><span class="identifier">ve</span> <span class="identifier">also</span> <span class="identifier">heard</span> <span class="identifier">of</span> <span class="identifier">problems</span> <span class="identifier">with</span> <span class="identifier">QueryPerformanceCounter</span> <span class="identifier">in</span> <span class="identifier">multi</span><span class="special">-</span><span class="identifier">processor</span>
+I'</span><span class="identifier">ve</span> <span class="identifier">also</span> <span class="identifier">heard</span> <span class="identifier">of</span> <span class="identifier">problems</span> <span class="identifier">with</span> <span class="identifier">QueryPerformanceCounter</span> <span class="identifier">in</span> <span class="identifier">multi</span><span class="special">-</span><span class="identifier">processor</span>
 <span class="identifier">systems</span><span class="special">.</span>
 
 <span class="identifier">I</span> <span class="identifier">know</span> <span class="identifier">some</span> <span class="identifier">people</span> <span class="identifier">SetThreadAffinityMask</span> <span class="identifier">to</span> <span class="number">1</span> <span class="keyword">for</span> <span class="identifier">the</span> <span class="identifier">current</span> <span class="identifier">thread</span> <span class="identifier">call</span>
 <span class="identifier">their</span> <span class="identifier">QueryPerformance</span><span class="special">*</span> <span class="identifier">functions</span> <span class="identifier">then</span> <span class="identifier">restore</span> <span class="identifier">SetThreadAffinityMask</span><span class="special">.</span> <span class="identifier">This</span>
 <span class="identifier">seems</span> <span class="identifier">horrible</span> <span class="identifier">to</span> <span class="identifier">me</span> <span class="identifier">because</span> <span class="identifier">it</span> <span class="identifier">forces</span> <span class="identifier">your</span> <span class="identifier">program</span> <span class="identifier">to</span> <span class="identifier">jump</span> <span class="identifier">to</span> <span class="identifier">another</span>
-<span class="identifier">physical</span> <span class="identifier">processor</span> <span class="keyword">if</span> <span class="identifier">it</span> <span class="identifier">isn</span><span class="error">`</span><span class="identifier">t</span> <span class="identifier">already</span> <span class="identifier">on</span> <span class="identifier">cpu0</span> <span class="identifier">but</span> <span class="identifier">they</span> <span class="identifier">claim</span> <span class="identifier">it</span> <span class="identifier">worked</span> <span class="identifier">well</span>
+<span class="identifier">physical</span> <span class="identifier">processor</span> <span class="keyword">if</span> <span class="identifier">it</span> <span class="identifier">isn</span><span class="error">'</span><span class="identifier">t</span> <span class="identifier">already</span> <span class="identifier">on</span> <span class="identifier">cpu0</span> <span class="identifier">but</span> <span class="identifier">they</span> <span class="identifier">claim</span> <span class="identifier">it</span> <span class="identifier">worked</span> <span class="identifier">well</span>
 <span class="identifier">in</span> <span class="identifier">practice</span> <span class="identifier">because</span> <span class="identifier">they</span> <span class="identifier">called</span> <span class="identifier">the</span> <span class="identifier">timing</span> <span class="identifier">functions</span> <span class="identifier">infrequently</span><span class="special">.</span>
 
 <span class="identifier">In</span> <span class="identifier">the</span> <span class="identifier">past</span> <span class="identifier">I</span> <span class="identifier">have</span> <span class="identifier">chosen</span> <span class="identifier">to</span> <span class="identifier">use</span> <span class="identifier">timeGetTime</span> <span class="identifier">with</span> <span class="identifier">timeBeginPeriod</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="keyword">for</span>
 <span class="identifier">high</span> <span class="identifier">resolution</span> <span class="identifier">timers</span> <span class="identifier">to</span> <span class="identifier">avoid</span> <span class="identifier">these</span> <span class="identifier">issues</span><span class="special">.</span>
 </pre>
 <a name="boost_chrono.appendices.todo.for_later_releases"></a><h4>
-<a name="id4903561"></a>
+<a name="id4905970"></a>
         <a href="todo.html#boost_chrono.appendices.todo.for_later_releases">For later
         releases</a>
       </h4>

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -38,8 +38,8 @@
 </dl></dd>
 <dt><span class="section"><a href="reference/process_cpu_related.html">Process CPU
       related</a></span></dt>
-<dd><dl><dt><span class="section"><a href="reference/process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp">
- Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt></dl></dd>
+<dd><dl><dt><span class="section"><a href="reference/process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_cpu_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt></dl></dd>
 <dt><span class="section">Stopwatches</span></dt>
 <dd><dl>
 <dt><span class="section">Stopwatch Requirements</span></dt>
@@ -49,20 +49,24 @@
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatch_accumulator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 <dt><span class="section"><a href="reference/stopwatches.html#boost_chrono.reference.stopwatches.stopwatch_scoped_hpp">
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatch_scoped</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
-<dt><span class="section"><a href="reference/stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp">
- Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_stopwatches</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 </dl></dd>
 <dt><span class="section"><a href="reference/stopwatch_reporters.html">Stopwatch
       Reporters</a></span></dt>
 <dd><dl>
 <dt><span class="section"><a href="reference/stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.stopwatch_reporter_hpp">
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatch_reporter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
+<dt><span class="section"><a href="reference/stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">digital_time</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 <dt><span class="section"><a href="reference/stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.stopwatch_formatter_hpp">
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatch_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 <dt><span class="section"><a href="reference/stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.stopwatch_accumulator_formatter_hpp">
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatch_accumulator_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 <dt><span class="section"><a href="reference/stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.process_process_stopwatches_reporter_hpp">
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_stopwatches_reporter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
+<dt><span class="section"><a href="reference/stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.time_formatter_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">time_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
+<dt><span class="section"><a href="reference/stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">digital_time_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 </dl></dd>
 <dt><span class="section"><a href="reference/deprecated_headers.html">Deprecated
       Headers</a></span></dt>

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/cpp0x.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/cpp0x.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/cpp0x.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -362,10 +362,7 @@
 </pre>
 <p>
             If R1::num * R2::den &lt; R2::num * R1::den, ratio_less derives from
- true_type, else derives from false_type. Implementations are permitted
- to use more complex algorithms to compute the above relationship to avoid
- overflow. If the implementation is not able to avoid overflow, a diagnostic
- is emitted.
+ true_type, else derives from false_type.
           </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">&gt;</span> <span class="keyword">struct</span> <span class="identifier">ratio_not_equal</span>
     <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="special">!</span><span class="identifier">ratio_equal</span><span class="special">&lt;</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">&gt;</span> <span class="special">{};</span>
@@ -591,7 +588,7 @@
             and both of these calls happen before <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">::</span><span class="identifier">max</span><span class="special">()</span></code>.
           </p>
 <div class="table">
-<a name="id4831338"></a><p class="title"><b>Table 1. Clock Requirements</b></p>
+<a name="id4831330"></a><p class="title"><b>Table 1. Clock Requirements</b></p>
 <table class="table" summary="Clock Requirements">
 <colgroup>
 <col>
@@ -1020,11 +1017,11 @@
 <span class="special">}}</span>
 </pre>
 <p>
- Rep must be an arithmetic type, or a class emulating an arithmetic type.
- If <code class="computeroutput"><span class="identifier">duration</span></code> is instantiated
- with the type of <code class="computeroutput"><span class="identifier">Rep</span></code>
- being a <code class="computeroutput"><span class="identifier">duration</span></code>, a diagnostic
- is required.
+ Rep must be an arithmetic type, or a class emulating an arithmetic type,
+ compile diagnostic otherwise. If <code class="computeroutput"><span class="identifier">duration</span></code>
+ is instantiated with the type of <code class="computeroutput"><span class="identifier">Rep</span></code>
+ being a <code class="computeroutput"><span class="identifier">duration</span></code>, compile
+ diagnostic is issued.
           </p>
 <p>
             Period must be an instantiation of <code class="computeroutput"><span class="identifier">ratio</span></code>,
@@ -1057,7 +1054,7 @@
 <span class="identifier">BOOST_CONSTEXPR</span> <span class="keyword">explicit</span> <span class="identifier">duration</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&amp;</span> <span class="identifier">r</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="identifier">Rep2</span></code>
+ <span class="bold"><strong>Remarks:</strong></span> <code class="computeroutput"><span class="identifier">Rep2</span></code>
               is implicitly convertible to <code class="computeroutput"><span class="identifier">rep</span></code>,
               and
             </p>
@@ -1072,10 +1069,11 @@
               </li>
 </ul></div>
 <p>
- A diagnostic is required if this requirement is not met. <span class="bold"><strong>Note:</strong></span> This requirement prevents construction
- of an integral-based <code class="computeroutput"><span class="identifier">duration</span></code>
- with a floating point representation. Such a construction could easily
- lead to confusion about the value of the <code class="computeroutput"><span class="identifier">duration</span></code>.
+ If these constraints are not met, this constructor shall not participate
+ in overload resolution. <span class="bold"><strong>Note:</strong></span> This
+ requirement prevents construction of an integral-based <code class="computeroutput"><span class="identifier">duration</span></code> with a floating point representation.
+ Such a construction could easily lead to confusion about the value
+ of the <code class="computeroutput"><span class="identifier">duration</span></code>.
             </p>
 <p>
               <span class="bold"><strong>Example:</strong></span>
@@ -1101,17 +1099,15 @@
 <span class="identifier">BOOST_CONSTEXPR</span> <span class="identifier">duration</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="identifier">treat_as_floating_point</span><span class="special">&lt;</span><span class="identifier">rep</span><span class="special">&gt;::</span><span class="identifier">value</span></code>,
+ <span class="bold"><strong>Remarks:</strong></span> <code class="computeroutput"><span class="identifier">treat_as_floating_point</span><span class="special">&lt;</span><span class="identifier">rep</span><span class="special">&gt;::</span><span class="identifier">value</span></code>,
               or <code class="computeroutput"><span class="identifier">ratio_divide</span><span class="special">&lt;</span><span class="identifier">Period2</span><span class="special">,</span>
               <span class="identifier">period</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">den</span> <span class="special">==</span>
- <span class="number">1</span></code>.
- </p>
-<pre class="programlisting"><span class="identifier">A</span> <span class="identifier">diagnostic</span> <span class="identifier">is</span> <span class="identifier">required</span> <span class="keyword">if</span> <span class="keyword">this</span> <span class="identifier">requirement</span> <span class="identifier">is</span> <span class="keyword">not</span> <span class="identifier">met</span><span class="special">.</span>
-</pre>
-<p>
- <span class="bold"><strong>note</strong></span> This requirement prevents implicit
- truncation error when converting between integral-based <code class="computeroutput"><span class="identifier">duration</span></code>s. Such a construction could
- easily lead to confusion about the value of the <code class="computeroutput"><span class="identifier">duration</span></code>.
+ <span class="number">1</span></code>, else this constructor shall
+ not participate in overload resolution. <span class="bold"><strong>note</strong></span>
+ This requirement prevents implicit truncation error when converting
+ between integral-based <code class="computeroutput"><span class="identifier">duration</span></code>s.
+ Such a construction could easily lead to confusion about the value
+ of the <code class="computeroutput"><span class="identifier">duration</span></code>.
             </p>
 <p>
               <span class="bold"><strong>Example:</strong></span>
@@ -1366,6 +1362,10 @@
             Non-Member function <code class="computeroutput"><span class="keyword">operator</span><span class="special">/(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">Rep2</span><span class="special">)</span></code></a></span></dt>
 <dt><span class="section"><a href="cpp0x.html#boost_chrono.reference.cpp0x.chrono_hpp.duration_non_member_arithmetic.duration_operator_d_2">
             Non-Member function <code class="computeroutput"><span class="keyword">operator</span><span class="special">/(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a></span></dt>
+<dt><span class="section"><a href="cpp0x.html#boost_chrono.reference.cpp0x.chrono_hpp.duration_non_member_arithmetic.duration_operator_mod_1">
+ Non-Member function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">Rep2</span><span class="special">)</span></code></a></span></dt>
+<dt><span class="section"><a href="cpp0x.html#boost_chrono.reference.cpp0x.chrono_hpp.duration_non_member_arithmetic.duration_operator_mod_2">
+ Non-Member function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a></span></dt>
 </dl></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h6 class="title">
@@ -1476,6 +1476,44 @@
               arguments. Returns <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">/</span> <span class="identifier">CD</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span></code>.
             </p>
 </div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="boost_chrono.reference.cpp0x.chrono_hpp.duration_non_member_arithmetic.duration_operator_mod_1"></a><a href="cpp0x.html#boost_chrono.reference.cpp0x.chrono_hpp.duration_non_member_arithmetic.duration_operator_mod_1" title="
+ Non-Member function operator%(duration,Rep2)">
+ Non-Member function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">Rep2</span><span class="special">)</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rep2</span><span class="special">&gt;</span>
+<span class="identifier">duration</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;</span>
+<span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span>
+</pre>
+<p>
+ <span class="bold"><strong>Remarks</strong></span> This function will not participate
+ in overload resolution unless Rep2 shall be implicitly convertible
+ to CR(Rep1, Rep2) and Rep2 shall not be an instantiation of duration.
+ </p>
+<p>
+ <span class="bold"><strong>Returns:</strong></span> duration&lt;CR(Rep1,Rep2),
+ Period&gt;(d) %= s.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="boost_chrono.reference.cpp0x.chrono_hpp.duration_non_member_arithmetic.duration_operator_mod_2"></a><a href="cpp0x.html#boost_chrono.reference.cpp0x.chrono_hpp.duration_non_member_arithmetic.duration_operator_mod_2" title="
+ Non-Member function operator%(duration,duration)">
+ Non-Member function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rep2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period2</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">&gt;,</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">type</span>
+<span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+ <span class="bold"><strong>Remarks</strong></span> This function will not participate
+ in overload resolution unless
+ </p>
+<p>
+ <span class="bold"><strong>Returns:</strong></span> CD(lhs) %= CD(rhs)
+ </p>
+</div>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h5 class="title">

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/process_cpu_related.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/process_cpu_related.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/process_cpu_related.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -31,34 +31,34 @@
       related</a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp">
- Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_cpu_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_real_cpu_clock_">Class
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_real_cpu_clock_">Class
           <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a></span></dt>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_user_cpu_clock_">Class
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_user_cpu_clock_">Class
           <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a></span></dt>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_system_cpu_clock_">Class
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_system_cpu_clock_">Class
           <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a></span></dt>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_clocks_">Class
- <code class="computeroutput"><span class="identifier">process_clocks</span></code></a></span></dt>
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_cpu_clock_">Class
+ <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a></span></dt>
 </dl></dd>
 </dl></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_chrono.reference.process_cpu_related.process_clocks_hpp"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp" title="
- Header &lt;boost/chrono/process_clocks.hpp&gt;">
- Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
+<a name="boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp" title="
+ Header &lt;boost/chrono/process_cpu_clocks.hpp&gt;">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_cpu_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_real_cpu_clock_">Class
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_real_cpu_clock_">Class
           <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a></span></dt>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_user_cpu_clock_">Class
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_user_cpu_clock_">Class
           <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a></span></dt>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_system_cpu_clock_">Class
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_system_cpu_clock_">Class
           <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a></span></dt>
-<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_clocks_">Class
- <code class="computeroutput"><span class="identifier">process_clocks</span></code></a></span></dt>
+<dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_cpu_clock_">Class
+ <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a></span></dt>
 </dl></div>
 <p>
           Knowing how long a program takes to execute is useful in both test and
@@ -71,13 +71,13 @@
     <span class="keyword">class</span> <span class="identifier">process_real_cpu_clock</span><span class="special">;</span>
     <span class="keyword">class</span> <span class="identifier">process_user_cpu_clock</span><span class="special">;</span>
     <span class="keyword">class</span> <span class="identifier">process_system_cpu_clock</span><span class="special">;</span>
- <span class="keyword">class</span> <span class="identifier">process_clocks</span><span class="special">;</span>
+ <span class="keyword">class</span> <span class="identifier">process_cpu_clock</span><span class="special">;</span>
 
 <span class="special">}</span> <span class="special">}</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_real_cpu_clock_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_real_cpu_clock_" title="Class
+<a name="boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_real_cpu_clock_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_real_cpu_clock_" title="Class
           process_real_cpu_clock">Class
           <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>
 </h5></div></div></div>
@@ -105,7 +105,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_user_cpu_clock_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_user_cpu_clock_" title="Class
+<a name="boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_user_cpu_clock_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_user_cpu_clock_" title="Class
           process_user_cpu_clock">Class
           <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a>
 </h5></div></div></div>
@@ -133,7 +133,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_system_cpu_clock_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_system_cpu_clock_" title="Class
+<a name="boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_system_cpu_clock_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_system_cpu_clock_" title="Class
           process_system_cpu_clock">Class
           <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>
 </h5></div></div></div>
@@ -161,16 +161,15 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_clocks_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_clocks_" title="Class
- process_clocks">Class
- <code class="computeroutput"><span class="identifier">process_clocks</span></code></a>
+<a name="boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_cpu_clock_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_cpu_clock_" title="Class
+ process_cpu_clock">Class
+ <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a>
 </h5></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_clocks_.class__durations_">Class
- <code class="computeroutput"><span class="identifier">durations</span></code></a></span></dt></dl></div>
+<div class="toc"><dl><dt><span class="section"><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_cpu_clock_.class__times_">Class
+ <code class="computeroutput"><span class="identifier">times</span></code></a></span></dt></dl></div>
 <p>
             <code class="computeroutput"><span class="identifier">process_clocks</span></code> can be
- considered as a <code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">process_real_cpu_clock</span><span class="special">,</span> <span class="identifier">process_user_cpu_clock</span><span class="special">,</span> <span class="identifier">process_system_cpu_clock</span><span class="special">&gt;</span></code>. Obviously it doesn't satisfy the
- Clock Requirements.
+ considered as a <code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">process_real_cpu_clock</span><span class="special">,</span> <span class="identifier">process_user_cpu_clock</span><span class="special">,</span> <span class="identifier">process_system_cpu_clock</span><span class="special">&gt;</span></code>.
           </p>
 <p>
             <code class="computeroutput"><span class="identifier">process_clocks</span></code> provides
@@ -182,30 +181,54 @@
             The process relative real, user and system current time can be obtained
             at once by calling <code class="computeroutput"><span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>.
           </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_clocks</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">BOOST_CHRONO_DECL</span> <span class="identifier">process_cpu_clock</span>
+<span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">typedef</span> <span class="identifier">nanoseconds</span> <span class="identifier">duration</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">process_clocks</span><span class="special">&gt;</span> <span class="identifier">time_point</span><span class="special">;</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_monotonic</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
+ <span class="keyword">struct</span> <span class="identifier">times</span> <span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">times</span><span class="special">,</span> <span class="identifier">nano</span><span class="special">&gt;</span> <span class="identifier">duration</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">process_cpu_clock</span><span class="special">&gt;</span> <span class="identifier">time_point</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_monotonic</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
 
- <span class="keyword">struct</span> <span class="identifier">durations</span><span class="special">;</span>
- <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">now</span><span class="special">(</span> <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">durations</span> <span class="special">&amp;</span> <span class="identifier">times</span><span class="special">,</span>
- <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
+ <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">duration_values</span><span class="special">&lt;</span><span class="identifier">process_cpu_clock</span><span class="special">::</span><span class="identifier">times</span><span class="special">&gt;</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="identifier">process_cpu_clock</span><span class="special">::</span><span class="identifier">times</span> <span class="identifier">zero</span><span class="special">();</span>
+ <span class="keyword">static</span> <span class="identifier">process_cpu_clock</span><span class="special">::</span><span class="identifier">times</span> <span class="identifier">max</span><span class="special">();</span>
+ <span class="keyword">static</span> <span class="identifier">process_cpu_clock</span><span class="special">::</span><span class="identifier">times</span> <span class="identifier">min</span><span class="special">();</span>
 <span class="special">};</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h6 class="title">
-<a name="boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_clocks_.class__durations_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_clocks_hpp.class__process_clocks_.class__durations_" title="Class
- durations">Class
- <code class="computeroutput"><span class="identifier">durations</span></code></a>
+<a name="boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_cpu_clock_.class__times_"></a><a href="process_cpu_related.html#boost_chrono.reference.process_cpu_related.process_cpu_clocks_hpp.class__process_cpu_clock_.class__times_" title="Class
+ times">Class
+ <code class="computeroutput"><span class="identifier">times</span></code></a>
 </h6></div></div></div>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">durations</span> <span class="special">{</span>
- <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">duration</span> <span class="identifier">real</span><span class="special">;</span> <span class="comment">// real (i.e wall clock) time
-</span> <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">duration</span> <span class="identifier">user</span><span class="special">;</span> <span class="comment">// user cpu time
-</span> <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">duration</span> <span class="identifier">system</span><span class="special">;</span> <span class="comment">// system cpu time
-</span><span class="special">};</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">times</span> <span class="special">:</span> <span class="identifier">arithmetic</span><span class="special">&lt;</span><span class="identifier">times</span><span class="special">&gt;,</span> <span class="identifier">less_than_comparable</span><span class="special">&lt;</span><span class="identifier">times</span><span class="special">&gt;</span>
+<span class="special">{</span>
+ <span class="identifier">process_real_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">real</span><span class="special">;</span> <span class="comment">// real (i.e wall clock) time
+</span> <span class="identifier">process_user_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">user</span><span class="special">;</span> <span class="comment">// user cpu time
+</span> <span class="identifier">process_system_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">system</span><span class="special">;</span> <span class="comment">// system cpu time
+</span>
+ <span class="identifier">times</span><span class="special">();</span>
+ <span class="identifier">times</span><span class="special">(</span>
+ <span class="identifier">process_real_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">process_user_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">u</span><span class="special">,</span>
+ <span class="identifier">process_system_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">s</span><span class="special">);</span>
+
+ <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="identifier">times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="identifier">times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="identifier">times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="identifier">times</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
 </pre>
 </div>
 </div>

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatch_reporters.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatch_reporters.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatch_reporters.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -40,6 +40,10 @@
           Class <code class="computeroutput"><span class="identifier">stopwatch_reporter</span><span class="special">&lt;&gt;</span></code></a></span></dt>
 <dt><span class="section">stopwatch_reporter useful typedefs</span></dt>
 </dl></dd>
+<dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">digital_time</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
+<dd><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_hpp.class__digital_time_">Class
+ <code class="computeroutput"><span class="identifier">digital_time</span></code></a></span></dt></dl></dd>
 <dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.stopwatch_formatter_hpp">
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatch_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 <dd><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.stopwatch_formatter_hpp.class__stopwatch_formatter_">Class
@@ -52,6 +56,14 @@
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_stopwatches_reporter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
 <dd><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.process_process_stopwatches_reporter_hpp.class__process_stopwatches_reporter_">Class
           <code class="computeroutput"><span class="identifier">process_stopwatches_reporter</span></code></a></span></dt></dl></dd>
+<dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.time_formatter_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">time_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
+<dd><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.time_formatter_hpp.class__time_formatter_">Class
+ <code class="computeroutput"><span class="identifier">time_formatter</span></code></a></span></dt></dl></dd>
+<dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">digital_time_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
+<dd><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp.class__time_formatter_">Class
+ <code class="computeroutput"><span class="identifier">time_formatter</span></code></a></span></dt></dl></dd>
 </dl></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -103,7 +115,7 @@
             <code class="computeroutput"><span class="identifier">os</span></code> is a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span></code>, ec is a system::error_code
           </p>
 <div class="table">
-<a name="id4862203"></a><p class="title"><b>Table 3. Stopwatch Requirements</b></p>
+<a name="id4862296"></a><p class="title"><b>Table 3. Stopwatch Requirements</b></p>
 <table class="table" summary="Stopwatch Requirements">
 <colgroup>
 <col>
@@ -315,6 +327,59 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
+<a name="boost_chrono.reference.stopwatch_reporters.digital_time_hpp"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_hpp" title="
+ Header &lt;boost/chrono/digital_time.hpp&gt;">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">digital_time</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_hpp.class__digital_time_">Class
+ <code class="computeroutput"><span class="identifier">digital_time</span></code></a></span></dt></dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
+ <span class="keyword">class</span> <span class="identifier">digital_time</span><span class="special">;</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="boost_chrono.reference.stopwatch_reporters.digital_time_hpp.class__digital_time_"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_hpp.class__digital_time_" title="Class
+ digital_time">Class
+ <code class="computeroutput"><span class="identifier">digital_time</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">digital_time</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least32_t</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">24</span><span class="special">*</span><span class="number">3600</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">days</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">hours</span> <span class="identifier">hours</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">minutes</span> <span class="identifier">minutes</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">seconds</span> <span class="identifier">seconds</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">nanoseconds</span> <span class="identifier">nanoseconds</span><span class="special">;</span>
+
+ <span class="identifier">days</span> <span class="identifier">days_</span><span class="special">;</span>
+ <span class="identifier">hours</span> <span class="identifier">hours_</span><span class="special">;</span>
+ <span class="identifier">minutes</span> <span class="identifier">minutes_</span><span class="special">;</span>
+ <span class="identifier">seconds</span> <span class="identifier">seconds_</span><span class="special">;</span>
+ <span class="identifier">nanoseconds</span> <span class="identifier">nanoseconds_</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
+ <span class="keyword">static</span> <span class="identifier">days</span> <span class="identifier">get_days</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
+ <span class="keyword">static</span> <span class="identifier">hours</span> <span class="identifier">get_hours</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
+ <span class="keyword">static</span> <span class="identifier">minutes</span> <span class="identifier">get_minutes</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
+ <span class="keyword">static</span> <span class="identifier">seconds</span> <span class="identifier">get_seconds</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
+ <span class="keyword">static</span> <span class="identifier">nanoseconds</span> <span class="identifier">get_nanoseconds</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
+ <span class="keyword">explicit</span> <span class="identifier">digital_time</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
 <a name="boost_chrono.reference.stopwatch_reporters.stopwatch_formatter_hpp"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.stopwatch_formatter_hpp" title="
         Header &lt;boost/chrono/stopwatch_formatter.hpp&gt;">
         Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatch_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
@@ -426,6 +491,9 @@
           </p>
 </div>
 </div>
+<p>
+ [
+ </p>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_chrono.reference.stopwatch_reporters.process_process_stopwatches_reporter_hpp"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.process_process_stopwatches_reporter_hpp" title="
@@ -533,6 +601,135 @@
 </pre>
 </div>
 </div>
+<p>
+ ]
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_chrono.reference.stopwatch_reporters.time_formatter_hpp"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.time_formatter_hpp" title="
+ Header &lt;boost/chrono/time_formatter.hpp&gt;">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">time_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.time_formatter_hpp.class__time_formatter_">Class
+ <code class="computeroutput"><span class="identifier">time_formatter</span></code></a></span></dt></dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
+
+ <span class="keyword">class</span> <span class="identifier">time_formatter</span><span class="special">;</span>
+
+<span class="special">}</span> <span class="special">}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="boost_chrono.reference.stopwatch_reporters.time_formatter_hpp.class__time_formatter_"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.time_formatter_hpp.class__time_formatter_" title="Class
+ time_formatter">Class
+ <code class="computeroutput"><span class="identifier">time_formatter</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">time_formatter</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&amp;</span> <span class="identifier">m_cout</span><span class="special">();</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">m_default_places</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">default_format</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="keyword">int</span> <span class="identifier">default_places</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">m_default_places</span><span class="special">;</span> <span class="special">}</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Stopwatch</span> <span class="special">&gt;</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">show_time</span><span class="special">(</span> <span class="identifier">Stopwatch</span> <span class="special">&amp;</span> <span class="identifier">stopwatch_</span>
+ <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">format</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">places</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&amp;</span> <span class="identifier">os</span>
+ <span class="special">,</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<p>
+ The default places is given by default_places and is 3. The default format
+ is "\nreal %rs, cpu %cs (%p%), user %us, system %ss\n", where
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">r</span></code>
+ : real process clock
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">u</span></code>
+ : user process clock
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">s</span></code>
+ : system process clock
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">c</span></code>
+ : user+system process clock
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">p</span></code>
+ : percentage (user+system)/real process clock
+ </li>
+</ul></div>
+<p>
+ All the units are given using the suffix "s" following the
+ System International d'Unites Std.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp" title="
+ Header &lt;boost/chrono/digital_time_formatter.hpp&gt;">
+ Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">digital_time_formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp.class__time_formatter_">Class
+ <code class="computeroutput"><span class="identifier">time_formatter</span></code></a></span></dt></dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
+
+ <span class="keyword">class</span> <span class="identifier">digital_time_formatter</span><span class="special">;</span>
+
+<span class="special">}</span> <span class="special">}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp.class__time_formatter_"></a><a href="stopwatch_reporters.html#boost_chrono.reference.stopwatch_reporters.digital_time_formatter_hpp.class__time_formatter_" title="Class
+ time_formatter">Class
+ <code class="computeroutput"><span class="identifier">time_formatter</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">time_formatter</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&amp;</span> <span class="identifier">m_cout</span><span class="special">();</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">m_default_places</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">default_format</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="keyword">int</span> <span class="identifier">default_places</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">m_default_places</span><span class="special">;</span> <span class="special">}</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Stopwatch</span> <span class="special">&gt;</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">show_time</span><span class="special">(</span> <span class="identifier">Stopwatch</span> <span class="special">&amp;</span> <span class="identifier">stopwatch_</span>
+ <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">format</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">places</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&amp;</span> <span class="identifier">os</span>
+ <span class="special">,</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<p>
+ The default places is given by default_places and is 3. The default format
+ is "\n%d days(s) %h:%m:%s.%n\n", where
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">d</span></code>
+ : days
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">h</span></code>
+ : hours
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">m</span></code>
+ : minutes
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">s</span></code>
+ : seconds
+ </li>
+<li>
+<code class="computeroutput"><span class="special">%</span><span class="identifier">n</span></code>
+ : nanoseconds
+ </li>
+</ul></div>
+</div>
+</div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>

Modified: sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatches.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatches.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/boost_chrono/reference/stopwatches.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -66,10 +66,6 @@
 <dt><span class="section"><a href="stopwatches.html#boost_chrono.reference.stopwatches.stopwatch_scoped_hpp.template_class__stopwatch_resumer___">Template
           Class <code class="computeroutput"><span class="identifier">stopwatch_resumer</span><span class="special">&lt;&gt;</span></code></a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp">
- Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_stopwatches</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
-<dd><dl><dt><span class="section"><a href="stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp.class__process_stopwatches_">Class
- <code class="computeroutput"><span class="identifier">process_stopwatches</span></code></a></span></dt></dl></dd>
 </dl></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -100,7 +96,7 @@
           is an instance of <code class="computeroutput"><span class="identifier">S</span></code>.
         </p>
 <div class="table">
-<a name="id4852460"></a><p class="title"><b>Table 2. Stopwatch Requirements</b></p>
+<a name="id4853554"></a><p class="title"><b>Table 2. Stopwatch Requirements</b></p>
 <table class="table" summary="Stopwatch Requirements">
 <colgroup>
 <col>
@@ -886,78 +882,6 @@
 </pre>
 </div>
 </div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_chrono.reference.stopwatches.process_stopwatches_hpp"></a><a href="stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp" title="
- Header &lt;boost/chrono/process_stopwatches.hpp&gt;">
- Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">process_stopwatches</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
-</h4></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp.class__process_stopwatches_">Class
- <code class="computeroutput"><span class="identifier">process_stopwatches</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
-
- <span class="keyword">class</span> <span class="identifier">process_stopwatches</span><span class="special">;</span>
-
-<span class="special">}</span> <span class="special">}</span>
-</pre>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="boost_chrono.reference.stopwatches.process_stopwatches_hpp.class__process_stopwatches_"></a><a href="stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp.class__process_stopwatches_" title="Class
- process_stopwatches">Class
- <code class="computeroutput"><span class="identifier">process_stopwatches</span></code></a>
-</h5></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp.class__process_stopwatches_.stopwatch_accumulator_elapsed">
- Member function<code class="computeroutput"><span class="identifier">elapsed</span><span class="special">()</span></code></a></span></dt></dl></div>
-<p>
- Knowing how long a program takes to execute is useful in both test and
- production environments. It is also helpful if such timing information
- is broken down into real (wall clock) time, CPU time spent by the user,
- and CPU time spent by the operating system servicing user requests.
- </p>
-<p>
- <code class="computeroutput"><span class="identifier">process_stopwatches</span></code> is
- the <code class="computeroutput"><span class="identifier">stopwatches</span><span class="special">&lt;&gt;</span></code>
- equivalent associated to the pseudo-clock <code class="computeroutput"><span class="identifier">process_clocks</span></code>.
- It behaves like <code class="computeroutput"><span class="identifier">stopwatches</span><span class="special">&lt;&gt;</span></code> but it uses the specific <code class="computeroutput"><span class="identifier">process_clocks</span><span class="special">:</span><span class="identifier">now</span><span class="special">()</span></code>
- function.
- </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_stopwatches</span> <span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">typedef</span> <span class="identifier">process_clocks</span> <span class="identifier">clock</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">duration</span> <span class="identifier">duration</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">time_point</span> <span class="identifier">time_point</span><span class="special">;</span>
-
- <span class="keyword">explicit</span> <span class="identifier">process_stopwatches</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
-
- <span class="special">~</span><span class="identifier">process_stopwatches</span><span class="special">();</span>
- <span class="identifier">time_point</span> <span class="identifier">start</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
- <span class="identifier">duration</span> <span class="identifier">stop</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
- <span class="identifier">duration</span> <span class="identifier">suspend</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
- <span class="identifier">time_point</span> <span class="identifier">resume</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
- <span class="keyword">void</span> <span class="identifier">elapsed</span><span class="special">(</span> <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">durations</span> <span class="special">&amp;</span> <span class="identifier">times</span><span class="special">,</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
-<span class="special">};</span>
-</pre>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h6 class="title">
-<a name="boost_chrono.reference.stopwatches.process_stopwatches_hpp.class__process_stopwatches_.stopwatch_accumulator_elapsed"></a><a href="stopwatches.html#boost_chrono.reference.stopwatches.process_stopwatches_hpp.class__process_stopwatches_.stopwatch_accumulator_elapsed" title="
- Member functionelapsed()">
- Member function<code class="computeroutput"><span class="identifier">elapsed</span><span class="special">()</span></code></a>
-</h6></div></div></div>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">elapsed</span><span class="special">(</span> <span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">durations</span> <span class="special">&amp;</span> <span class="identifier">times</span><span class="special">,</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span> <span class="special">=</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span> <span class="special">);</span>
-</pre>
-<p>
- <span class="bold"><strong>Effect:</strong></span> set in times the elapsed times.
- </p>
-<p>
- <span class="bold"><strong>Throw:</strong></span> Nothing.
- </p>
-<p>
- <span class="bold"><strong>Note:</strong></span> the system::error_code &amp;
- parameter is here to conform to the Stopwatch concept.
- </p>
-</div>
-</div>
-</div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>

Modified: sandbox/chrono/libs/chrono/doc/html/index.html
==============================================================================
--- sandbox/chrono/libs/chrono/doc/html/index.html (original)
+++ sandbox/chrono/libs/chrono/doc/html/index.html 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -120,7 +120,7 @@
 </table></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: January 09, 2010 at 14:21:41 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 13, 2010 at 22:42:00 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/chrono/libs/chrono/example/stopwatch_example.cpp
==============================================================================
--- sandbox/chrono/libs/chrono/example/stopwatch_example.cpp (original)
+++ sandbox/chrono/libs/chrono/example/stopwatch_example.cpp 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -25,11 +25,8 @@
   stopwatch_accumulator<process_real_cpu_clock>::reporter::scoped_run _(t);
   stopwatch<process_real_cpu_clock>::reporter x("\nF1 %dsec\n");
   
-#if 0
   run_timer y;
-#else
- stopwatch_reporter<stopwatch<process_cpu_clock>, time_formatter> y;
-#endif
+ stopwatch_reporter<stopwatch<process_cpu_clock> > z;
   stopwatch_reporter<stopwatch<process_real_cpu_clock>, digital_time_formatter> hhmmss;
     
 

Modified: sandbox/chrono/libs/chrono/src/process_clock.cpp
==============================================================================
--- sandbox/chrono/libs/chrono/src/process_clock.cpp (original)
+++ sandbox/chrono/libs/chrono/src/process_clock.cpp 2010-01-13 18:00:53 EST (Wed, 13 Jan 2010)
@@ -48,4 +48,5 @@
         
     }
 
+
 }}


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk