Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r75695 - trunk/boost/chrono/io
From: vicente.botet_at_[hidden]
Date: 2011-11-27 12:53:19


Author: viboes
Date: 2011-11-27 12:53:18 EST (Sun, 27 Nov 2011)
New Revision: 75695
URL: http://svn.boost.org/trac/boost/changeset/75695

Log:
Chrono: minor naming/comments changes
Text files modified:
   trunk/boost/chrono/io/duration_put.hpp | 30 +++++---
   trunk/boost/chrono/io/time_point_get.hpp | 59 ++++++-----------
   trunk/boost/chrono/io/time_point_io.hpp | 13 +++
   trunk/boost/chrono/io/time_point_put.hpp | 70 +++++++++++---------
   trunk/boost/chrono/io/time_point_units.hpp | 132 +++++++++++++++++++++++++++++----------
   5 files changed, 185 insertions(+), 119 deletions(-)

Modified: trunk/boost/chrono/io/duration_put.hpp
==============================================================================
--- trunk/boost/chrono/io/duration_put.hpp (original)
+++ trunk/boost/chrono/io/duration_put.hpp 2011-11-27 12:53:18 EST (Sun, 27 Nov 2011)
@@ -26,7 +26,7 @@
      * @tparam OutputIterator a model of @c OutputIterator
      *
      * The @c duration_put facet provides facilities for formatted output of duration values.
- * The member function of @c duration_put take a duration and translate this into character string representation.
+ * The member function of @c duration_put take a duration and format it into character string representation.
      *
      */
     template <class CharT, class OutputIterator = std::ostreambuf_iterator<CharT> >
@@ -66,6 +66,7 @@
        *
        * @param s an output stream iterator
        * @param ios a reference to a ios_base
+ * @param fill the character used as filler
        * @param d the duration
        * @param pattern begin of the formatting pattern
        * @param pat_end end of the formatting pattern
@@ -83,7 +84,7 @@
        * followed by a pattern specifier character @c spec, which can be @c 'v' for
        * the duration value or @c 'u' for the duration unit. .
        * For each valid pattern sequence identified, calls
- * <c>put_value(s, ios, d)</c> or <c>put_unit(s, ios, d)</c>.
+ * <c>put_value(s, ios, fill, d)</c> or <c>put_unit(s, ios, fill, d)</c>.
        *
        * @Returns An iterator pointing immediately after the last character produced.
        */
@@ -147,12 +148,13 @@
        *
        * @param s an output stream iterator
        * @param ios a reference to a ios_base
+ * @param fill the character used as filler
        * @param d the duration
        * @Effects imbue in @c ios the @c duration_units_default facet if not already present.
        * Retrieves Stores the duration pattern from the @c duration_unit facet in let say @c str. Last as if
        * @code
        * return put(s, ios, d, str.data(), str.data() + str.size());
- * @codeend
+ * @endcode
        * @Returns An iterator pointing immediately after the last character produced.
        */
       template <typename Rep, typename Period>
@@ -177,9 +179,10 @@
        *
        * @param s an output stream iterator
        * @param ios a reference to a ios_base
+ * @param fill the character used as filler
        * @param d the duration
- * @Effects As if std::use_facet<std::num_put<CharT, iter_type> >(ios.getloc()).put(s, ios, ' ', static_cast<long int> (d.count())).
- * @Returns An iterator pointing immediately after the last character produced.
+ * @Effects As if s=std::use_facet<std::num_put<CharT, iter_type> >(ios.getloc()).put(s, ios, fill, static_cast<long int> (d.count())).
+ * @Returns s, iterator pointing immediately after the last character produced.
        */
       template <typename Rep, typename Period>
       iter_type put_value(iter_type s, std::ios_base& ios, char_type fill, duration<Rep, Period> const& d) const
@@ -192,11 +195,16 @@
        *
        * @param s an output stream iterator
        * @param ios a reference to a ios_base
+ * @param fill the character used as filler
        * @param d the duration
- * @param pattern
- * @Effects imbue in @c ios the @c duration_units_default facet if not already present.
- * @Effects Calls std::use_facet<duration_units<CharT,OutputIterator> >(ios.getloc()).put(s, ios, d).
- * @Returns An iterator pointing immediately after the last character produced.
+ * @Effects Let facet be the duration_units<CharT> facet associated to ios. If the associated unit is named,
+ * as if
+ * @code
+ string_type str = facet.get_unit(get_duration_style(ios), d);
+ s=std::copy(str.begin(), str.end(), s);
+ * @endcode
+ * Otherwise, format the unit as "[Period::num/Period::den]" followed by the unit associated to [N/D] obtained using facet.get_n_d_unit(get_duration_style(ios), d)
+ * @Returns s, iterator pointing immediately after the last character produced.
        */
       template <typename Rep, typename Period>
       iter_type put_unit(iter_type s, std::ios_base& ios, char_type fill, duration<Rep, Period> const& d) const
@@ -220,7 +228,7 @@
       {
         if (facet.template is_named_unit<Period>()) {
           string_type str = facet.get_unit(get_duration_style(ios), d);
- std::copy(str.begin(), str.end(), s);
+ s=std::copy(str.begin(), str.end(), s);
         } else {
           *s++ = CharT('[');
           std::use_facet<std::num_put<CharT, iter_type> >(ios.getloc()).put(s, ios, fill, Period::num);
@@ -228,7 +236,7 @@
           std::use_facet<std::num_put<CharT, iter_type> >(ios.getloc()).put(s, ios, fill, Period::den);
           *s++ = CharT(']');
           string_type str = facet.get_n_d_unit(get_duration_style(ios), d);
- std::copy(str.begin(), str.end(), s);
+ s=std::copy(str.begin(), str.end(), s);
         }
         return s;
       }

Modified: trunk/boost/chrono/io/time_point_get.hpp
==============================================================================
--- trunk/boost/chrono/io/time_point_get.hpp (original)
+++ trunk/boost/chrono/io/time_point_get.hpp 2011-11-27 12:53:18 EST (Sun, 27 Nov 2011)
@@ -24,22 +24,6 @@
   namespace chrono
   {
 
- /**
- * @c time_point_get is used to parse a character sequence, extracting
- * components of a duration into a class duration.
- * Each get member parses a format as produced by a corresponding format specifier to time_put<>::put.
- * If the sequence being parsed matches the correct format, the
- * corresponding member of the class duration argument are set to the
- * value used to produce the sequence;
- * otherwise either an error is reported or unspecified values are assigned.
- * In other words, user confirmation is required for reliable parsing of
- * user-entered durations, but machine-generated formats can be parsed
- * reliably. This allows parsers to be aggressive about interpreting user
- * variations on standard formats.
- *
- * If the end iterator is reached during parsing of the get() member
- * function, the member sets std::ios_base::eofbit in err.
- */
     template <class CharT, class InputIterator = std::istreambuf_iterator<CharT> >
     class time_point_get: public std::locale::facet
     {
@@ -89,8 +73,9 @@
        * - The expression err == std::ios_base::goodbit evaluates to false.
        * - The expression s == end evaluates to true, in which case the
        * function evaluates err = std::ios_base::eofbit | std::ios_base::failbit.
- * - The next element of pattern is equal to Õ%Õ, followed by a conversion
- * specifier character, format.
+ * - The next element of pattern is equal to '%', followed by a conversion
+ * specifier character, the functions @c get_duration or @c get_epoch are called depending on
+ * whether the format is @c 'd' or @c 'e'.
        * If the number of elements in the range [pattern,pat_end) is not
        * sufficient to unambiguously determine whether the conversion
        * specification is complete and valid, the function evaluates
@@ -216,8 +201,6 @@
 
         // Success! Store it.
         tp = time_point<Clock, Duration> (d);
- //std::cerr << __FILE__ << ":" << __LINE__ << " err " << err << std::endl;
-
         return s;
       }
 
@@ -226,8 +209,7 @@
        * @param s an input stream iterator
        * @param ios a reference to a ios_base
        * @param d the duration
- * @Effects imbue in @c ios the @c time_point_units_default facet if not already present.
- * Retrieves Stores the duration pattern from the @c duration_unit facet in let say @c str. Last as if
+ * Stores the duration pattern from the @c duration_unit facet in let say @c str. Last as if
        * @code
        * return get(s, end, ios, err, ios, d, str.data(), str.data() + str.size());
        * @codeend
@@ -252,11 +234,13 @@
       }
 
       /**
+ * As if
+ * @code
+ * return facet.get(s, end, ios, err, d);
+ * @endcode
+ * where @c facet is either the @c duration_get facet associated to the @c ios or an instance of the default @c duration_get facet.
        *
- * @param s an input stream iterator
- * @param ios a reference to a ios_base
- * @param d the duration
- * @Returns An iterator pointing just beyond the last character that can be determined to be part of a valid name
+ * @Returns An iterator pointing just beyond the last character that can be determined to be part of a valid duration.
        */
       template <typename Rep, typename Period>
       iter_type get_duration(iter_type i, iter_type e, std::ios_base& is, std::ios_base::iostate& err,
@@ -283,12 +267,14 @@
 
       /**
        *
- * @param s an output stream iterator
- * @param ios a reference to a ios_base
- * @param d the duration
- * @param pattern
- * @Effects Calls do_put_unit(s, ios, d).
- * @Returns An iterator pointing just beyond the last character that can be determined to be part of a valid name
+ * @Effects Let @c facet be the @c time_point_units facet associated to @c is or a new instance of the default @c time_point_units_default facet.
+ * Let @c epoch be the epoch string associated to the Clock using this facet.
+ * Scans @c i to match @c epoch or @c e is reached.
+ *
+ * If not match before the @c e is reached @c std::ios_base::failbit is set in @c err.
+ * If @c e is reached @c std::ios_base::failbit is set in @c err.
+ *
+ * @Returns An iterator pointing just beyond the last character that can be determined to be part of a valid epoch.
        */
       template <class Clock>
       iter_type get_epoch(iter_type i, iter_type e, std::ios_base& is, std::ios_base::iostate& err) const
@@ -309,18 +295,15 @@
       iter_type get_epoch(time_point_units<CharT> const &facet, iter_type i, iter_type e, std::ios_base&,
           std::ios_base::iostate& err) const
       {
- const std::basic_string<CharT> units = facet.template get_epoch<Clock> ();
- err = std::ios_base::goodbit;
- std::ptrdiff_t k = chrono_detail::scan_keyword(i, e, &units, &units + 1,
+ const std::basic_string<CharT> epoch = facet.template get_epoch<Clock> ();
+ std::ptrdiff_t k = chrono_detail::scan_keyword(i, e, &epoch, &epoch + 1,
         //~ std::use_facet<std::ctype<CharT> >(ios.getloc()),
- err) - &units;
- //std::cerr << __FILE__ << ":" << __LINE__ << " err " << err << std::endl;
+ err) - &epoch;
         if (k == 1)
         {
           err |= std::ios_base::failbit;
           return i;
         }
- //std::cerr << __FILE__ << ":" << __LINE__ << " err " << err << std::endl;
         return i;
       }
 

Modified: trunk/boost/chrono/io/time_point_io.hpp
==============================================================================
--- trunk/boost/chrono/io/time_point_io.hpp (original)
+++ trunk/boost/chrono/io/time_point_io.hpp 2011-11-27 12:53:18 EST (Sun, 27 Nov 2011)
@@ -207,6 +207,15 @@
       aspect_type a_save_;
     };
 
+ /**
+ *
+ * @param os
+ * @param tp
+ * @Effects Behaves as a formatted output function. After constructing a @c sentry object, if the @ sentry
+ * converts to true, calls to @c facet.put(os,os,os.fill(),tp) where @c facet is the @c time_point_put<CharT>
+ * facet associated to @c os or a new created instance of the default @c time_point_put<CharT> facet.
+ * @return @c os.
+ */
     template <class CharT, class Traits, class Clock, class Duration>
     std::basic_ostream<CharT, Traits>&
     operator<<(std::basic_ostream<CharT, Traits>& os, const time_point<Clock, Duration>& tp)
@@ -280,12 +289,12 @@
           if (!std::has_facet<time_point_get<CharT> >(is.getloc()))
           {
             std::cerr << __FILE__ << "[" << __LINE__ << "]"<< std::endl;
- time_point_get<CharT> () .get(is, std::istreambuf_iterator<CharT, Traits>(), is, err, tp);
+ time_point_get<CharT> ().get(is, std::istreambuf_iterator<CharT, Traits>(), is, err, tp);
           }
           else
           {
             std::cerr << __FILE__ << "[" << __LINE__ << "]"<< std::endl;
- std::use_facet<time_point_get<CharT> >(is.getloc()) .get(is, std::istreambuf_iterator<CharT, Traits>(), is,
+ std::use_facet<time_point_get<CharT> >(is.getloc()).get(is, std::istreambuf_iterator<CharT, Traits>(), is,
                 err, tp);
           }
         }

Modified: trunk/boost/chrono/io/time_point_put.hpp
==============================================================================
--- trunk/boost/chrono/io/time_point_put.hpp (original)
+++ trunk/boost/chrono/io/time_point_put.hpp 2011-11-27 12:53:18 EST (Sun, 27 Nov 2011)
@@ -26,8 +26,8 @@
      * @tparam ChatT a character type
      * @tparam OutputIterator a model of @c OutputIterator
      *
- * The @c time_point_put facet provides facilities for formatted output of duration values.
- * The member function of @c time_point_put take a duration and translate this into character string representation.
+ * The @c time_point_put facet provides facilities for formatted output of @c time_point values.
+ * The member function of @c time_point_put take a @c time_point and format it into character string representation.
      *
      */
     template <class CharT, class OutputIterator = std::ostreambuf_iterator<CharT> >
@@ -64,10 +64,10 @@
       }
 
       /**
- *
- * @param s an output stream iterator
+ * @param i an output stream iterator
        * @param ios a reference to a ios_base
- * @param d the duration
+ * @param fill the character used as filler
+ * @param tp the @c time_point
        * @param pattern begin of the formatting pattern
        * @param pat_end end of the formatting pattern
        *
@@ -75,16 +75,16 @@
        * identifying characters that are part of a pattern sequence. Each character
        * that is not part of a pattern sequence is written to @c s immediately, and
        * each pattern sequence, as it is identified, results in a call to
- * @c put_value or @c put_unit;
+ * @c put_duration or @c put_epoch;
        * thus, pattern elements and other characters are interleaved in the output
        * in the order in which they appear in the pattern. Pattern sequences are
        * identified by converting each character @c c to a @c char value as if by
        * @c ct.narrow(c,0), where @c ct is a reference to @c ctype<charT> obtained from
        * @c ios.getloc(). The first character of each sequence is equal to @c '%',
- * followed by a pattern specifier character @c spec, which can be @c 'v' for
- * the duration value or @c 'u' for the duration unit. .
+ * followed by a pattern specifier character @c spec, which can be @c 'd' for
+ * the duration value or @c 'e' for the epoch.
        * For each valid pattern sequence identified, calls
- * <c>put_value(s, ios, d)</c> or <c>put_unit(s, ios, d)</c>.
+ * <c>put_duration(s, ios, fill, tp.time_since_epoch())</c> or <c>put_epoch(s, ios)</c>.
        *
        * @Returns An iterator pointing immediately after the last character produced.
        */
@@ -146,15 +146,17 @@
       }
 
       /**
- *
- * @param s an output stream iterator
+ * @param i an output stream iterator
        * @param ios a reference to a ios_base
- * @param d the duration
- * @Effects imbue in @c ios the @c time_point_units_default facet if not already present.
- * Retrieves Stores the duration pattern from the @c duration_unit facet in let say @c str. Last as if
+ * @param fill the character used as filler
+ * @param tp the @c time_point
+ * @param pattern begin of the formatting pattern
+ * @param pat_end end of the formatting pattern
+ *
+ * @Effects Stores the time_point pattern from the @c time_point_unit facet in let say @c str. Last as if
        * @code
- * return put(s, ios, d, str.data(), str.data() + str.size());
- * @codeend
+ * return put(s, ios, dill, tp, str.data(), str.data() + str.size());
+ * @endcode
        * @Returns An iterator pointing immediately after the last character produced.
        */
       template <class Clock, class Duration>
@@ -176,11 +178,12 @@
       }
 
       /**
- *
- * @param s an output stream iterator
+ * @param i an output stream iterator
        * @param ios a reference to a ios_base
- * @param d the duration
- * @Effects As if std::use_facet<std::num_put<CharT, iter_type> >(ios.getloc()).put(s, ios, ' ', static_cast<long int> (d.count())).
+ * @param fill the character used as filler
+ * @param d the @c duration
+ * @Effects As if <c>facet.put(s, ios, fill, d)</c> where facet is the @c duration_put<CharT> facet associated
+ * to the @c ios or a new instance of @c duration_put<CharT>.
        * @Returns An iterator pointing immediately after the last character produced.
        */
       template <typename Rep, typename Period>
@@ -200,27 +203,30 @@
 
       /**
        *
- * @param s an output stream iterator
+ * @param i an output stream iterator
        * @param ios a reference to a ios_base
- * @param d the duration
- * @param pattern
- * @Effects imbue in @c ios the @c time_point_units_default facet if not already present.
- * @Effects Calls std::use_facet<time_point_units<CharT> >(ios.getloc()).put(s, ios, d).
- * @Returns An iterator pointing immediately after the last character produced.
+ * @Effects As if
+ * @code
+ * string_type str = facet.template get_epoch<Clock>();
+ * s=std::copy(str.begin(), str.end(), s);
+ * @endcode
+ * where facet is the @c time_point_units<CharT> facet associated
+ * to the @c ios or a new instance of @c time_point_units_default<CharT>.
+ * @Returns s, iterator pointing immediately after the last character produced.
        */
 
       template <typename Clock>
- iter_type put_epoch(iter_type i, std::ios_base& is) const
+ iter_type put_epoch(iter_type i, std::ios_base& os) const
       {
- if (std::has_facet<time_point_units<CharT> >(is.getloc()))
+ if (std::has_facet<time_point_units<CharT> >(os.getloc()))
         {
- time_point_units<CharT> const &facet = std::use_facet<time_point_units<CharT> >(is.getloc());
- return put_epoch<Clock> (facet, i, is);
+ time_point_units<CharT> const &facet = std::use_facet<time_point_units<CharT> >(os.getloc());
+ return put_epoch<Clock> (facet, i, os);
         }
         else
         {
           time_point_units_default<CharT> facet;
- return put_epoch<Clock> (facet, i, is);
+ return put_epoch<Clock> (facet, i, os);
         }
       }
 
@@ -228,7 +234,7 @@
       iter_type put_epoch(time_point_units<CharT> const& facet, iter_type s, std::ios_base&) const
       {
         string_type str = facet.template get_epoch<Clock>();
- std::copy(str.begin(), str.end(), s);
+ s= std::copy(str.begin(), str.end(), s);
         return s;
       }
 

Modified: trunk/boost/chrono/io/time_point_units.hpp
==============================================================================
--- trunk/boost/chrono/io/time_point_units.hpp (original)
+++ trunk/boost/chrono/io/time_point_units.hpp 2011-11-27 12:53:18 EST (Sun, 27 Nov 2011)
@@ -36,6 +36,10 @@
        * Type of character the facet is instantiated on.
        */
       typedef CharT char_type;
+ /**
+ * Type of character string used by member functions.
+ */
+ typedef std::basic_string<char_type> string_type;
 
       /**
        * Unique identifier for this type of facet.
@@ -59,18 +63,15 @@
       }
 
       /**
- * @return the pattern to be used by default calling @c do_get_pattern().
+ * @return the pattern to be used by default.
        */
- std::basic_string<CharT> get_pattern() const
- {
- return do_get_pattern();
- }
+ virtual string_type get_pattern() const =0;
 
       /**
        * @return the epoch associated to the clock @c Clock calling @c do_get_epoch(Clock())
        */
       template <typename Clock>
- std::basic_string<CharT> get_epoch() const
+ string_type get_epoch() const
       {
         return do_get_epoch(Clock());
       }
@@ -81,23 +82,54 @@
        */
       virtual ~time_point_units() {};
 
+
       /**
- * customization point for getting the timepoint's pattern.
+ *
+ * @param c a dummy instance of @c system_clock.
+ * @return The epoch string associated to the @c system_clock.
        */
- virtual std::basic_string<CharT> do_get_pattern() const=0;
-
- virtual std::basic_string<CharT> do_get_epoch(system_clock) const=0;
+ virtual string_type do_get_epoch(system_clock) const=0;
 
- virtual std::basic_string<CharT> do_get_epoch(steady_clock) const=0;
+ /**
+ *
+ * @param c a dummy instance of @c steady_clock.
+ * @return The epoch string associated to the @c steady_clock.
+ */
+ virtual string_type do_get_epoch(steady_clock) const=0;
 
 #if defined(BOOST_CHRONO_HAS_PROCESS_CLOCKS)
- virtual std::basic_string<CharT> do_get_epoch(process_real_cpu_clock) const=0;
- virtual std::basic_string<CharT> do_get_epoch(process_user_cpu_clock) const=0;
- virtual std::basic_string<CharT> do_get_epoch(process_system_cpu_clock) const=0;
- virtual std::basic_string<CharT> do_get_epoch(process_cpu_clock) const=0;
+ /**
+ *
+ * @param c a dummy instance of @c process_real_cpu_clock.
+ * @return The epoch string associated to the @c process_real_cpu_clock.
+ */
+ virtual string_type do_get_epoch(process_real_cpu_clock) const=0;
+ /**
+ *
+ * @param c a dummy instance of @c process_user_cpu_clock.
+ * @return The epoch string associated to the @c process_user_cpu_clock.
+ */
+ virtual string_type do_get_epoch(process_user_cpu_clock) const=0;
+ /**
+ *
+ * @param c a dummy instance of @c process_system_cpu_clock.
+ * @return The epoch string associated to the @c process_system_cpu_clock.
+ */
+ virtual string_type do_get_epoch(process_system_cpu_clock) const=0;
+ /**
+ *
+ * @param c a dummy instance of @c process_cpu_clock.
+ * @return The epoch string associated to the @c process_cpu_clock.
+ */
+ virtual string_type do_get_epoch(process_cpu_clock) const=0;
 #endif
 #if defined(BOOST_CHRONO_HAS_THREAD_CLOCK)
- virtual std::basic_string<CharT> do_get_epoch(thread_clock) const=0;
+ /**
+ *
+ * @param c a dummy instance of @c thread_clock.
+ * @return The epoch string associated to the @c thread_clock.
+ */
+ virtual string_type do_get_epoch(thread_clock) const=0;
 #endif
 
     };
@@ -111,7 +143,14 @@
     class time_point_units_default: public time_point_units<CharT>
     {
     public:
+ /**
+ * Type of character the facet is instantiated on.
+ */
       typedef CharT char_type;
+ /**
+ * Type of character string returned by member functions.
+ */
+ typedef std::basic_string<char_type> string_type;
 
       explicit time_point_units_default(size_t refs = 0) :
         time_point_units<CharT> (refs)
@@ -119,56 +158,77 @@
       }
       ~time_point_units_default() {}
 
-
- protected:
- std::basic_string<CharT> do_get_pattern() const
+ /**
+ * @return the default pattern "%d%e".
+ */
+ string_type get_pattern() const
       {
         static const CharT t[] =
         { '%', 'd', '%', 'e' };
- static const std::basic_string<CharT> pattern(t, t + sizeof (t) / sizeof (t[0]));
+ static const string_type pattern(t, t + sizeof (t) / sizeof (t[0]));
 
         return pattern;
       }
-// std::basic_string<CharT> get_date_time_pattern() const
-// {
-// static const CharT t[] =
-// { '%', 'd', '%', 'e' };
-// static const std::basic_string<CharT> pattern(t, t + sizeof (t) / sizeof (t[0]));
-//
-// return pattern;
-// }
-
 
- std::basic_string<CharT> do_get_epoch(system_clock ) const
+ protected:
+ /**
+ * @param c a dummy instance of @c system_clock.
+ * @return The epoch string returned by @c clock_string<system_clock,CharT>::since().
+ */
+ string_type do_get_epoch(system_clock ) const
       {
         return clock_string<system_clock,CharT>::since();
       }
- std::basic_string<CharT> do_get_epoch(steady_clock ) const
+ /**
+ * @param c a dummy instance of @c steady_clock.
+ * @return The epoch string returned by @c clock_string<steady_clock,CharT>::since().
+ */
+ string_type do_get_epoch(steady_clock ) const
       {
         return clock_string<steady_clock,CharT>::since();
       }
 
 #if defined(BOOST_CHRONO_HAS_PROCESS_CLOCKS)
- std::basic_string<CharT> do_get_epoch(process_real_cpu_clock ) const
+ /**
+ * @param c a dummy instance of @c process_real_cpu_clock.
+ * @return The epoch string returned by @c clock_string<process_real_cpu_clock,CharT>::since().
+ */
+ string_type do_get_epoch(process_real_cpu_clock ) const
       {
         return clock_string<process_real_cpu_clock,CharT>::since();
       }
- std::basic_string<CharT> do_get_epoch(process_user_cpu_clock ) const
+ /**
+ * @param c a dummy instance of @c process_user_cpu_clock.
+ * @return The epoch string returned by @c clock_string<process_user_cpu_clock,CharT>::since().
+ */
+ string_type do_get_epoch(process_user_cpu_clock ) const
       {
         return clock_string<process_user_cpu_clock,CharT>::since();
       }
- std::basic_string<CharT> do_get_epoch(process_system_cpu_clock ) const
+ /**
+ * @param c a dummy instance of @c process_system_cpu_clock.
+ * @return The epoch string returned by @c clock_string<process_system_cpu_clock,CharT>::since().
+ */
+ string_type do_get_epoch(process_system_cpu_clock ) const
       {
         return clock_string<process_system_cpu_clock,CharT>::since();
       }
- std::basic_string<CharT> do_get_epoch(process_cpu_clock ) const
+ /**
+ * @param c a dummy instance of @c process_cpu_clock.
+ * @return The epoch string returned by @c clock_string<process_cpu_clock,CharT>::since().
+ */
+ string_type do_get_epoch(process_cpu_clock ) const
       {
         return clock_string<process_cpu_clock,CharT>::since();
       }
 
 #endif
 #if defined(BOOST_CHRONO_HAS_THREAD_CLOCK)
- std::basic_string<CharT> do_get_epoch(thread_clock ) const
+ /**
+ * @param c a dummy instance of @c thread_clock.
+ * @return The epoch string returned by @c clock_string<thread_clock,CharT>::since().
+ */
+ string_type do_get_epoch(thread_clock ) const
       {
         return clock_string<thread_clock,CharT>::since();
       }


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