Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r75203 - trunk/boost/chrono/io
From: vicente.botet_at_[hidden]
Date: 2011-10-31 18:41:51


Author: viboes
Date: 2011-10-31 18:41:49 EDT (Mon, 31 Oct 2011)
New Revision: 75203
URL: http://svn.boost.org/trac/boost/changeset/75203

Log:
Chrono: complete plural forms
Text files modified:
   trunk/boost/chrono/io/duration_get.hpp | 196 +++++++++------------------
   trunk/boost/chrono/io/duration_put.hpp | 39 -----
   trunk/boost/chrono/io/duration_units.hpp | 276 ++++++++++++++++++++++++---------------
   3 files changed, 234 insertions(+), 277 deletions(-)

Modified: trunk/boost/chrono/io/duration_get.hpp
==============================================================================
--- trunk/boost/chrono/io/duration_get.hpp (original)
+++ trunk/boost/chrono/io/duration_get.hpp 2011-10-31 18:41:49 EDT (Mon, 31 Oct 2011)
@@ -1,4 +1,5 @@
 //
+// (C) Copyright Howard Hinnant
 // (C) Copyright 2011 Vicente J. Botet Escriba
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -77,11 +78,11 @@
        * @param refs
        * @Effects Construct a @c duration_get facet.
        * If the @c refs argument is @c 0 then destruction of the object is
- * delegated to the @c std::locale, or std::locales, containing it. This allows
+ * delegated to the @c locale, or locales, containing it. This allows
        * the user to ignore lifetime management issues. On the other had,
        * if @c refs is @c 1 then the object must be explicitly deleted;
- * the @c std::locale will not do so. In this case, the object can be
- * maintained across the lifetime of multiple std::locales.
+ * the @c locale will not do so. In this case, the object can be
+ * maintained across the lifetime of multiple locales.
        */
 
       explicit duration_get(size_t refs = 0) :
@@ -134,30 +135,23 @@
       iter_type get(iter_type s, iter_type end, std::ios_base& ios, std::ios_base::iostate& err,
           duration<Rep, Period> &d, const char_type *pattern, const char_type *pat_end) const
       {
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
 
         if (!std::has_facet<duration_units<CharT> >(ios.getloc())) ios.imbue(
             std::locale(ios.getloc(), new duration_units_default<CharT> ()));
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
 
         typedef typename detail::duration_io_intermediate<Rep>::type intermediate_type;
         intermediate_type r;
         detail::rt_ratio rt;
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
 
-#if 1
         const std::ctype<char_type>& ct = std::use_facet<std::ctype<char_type> >(ios.getloc());
         err = std::ios_base::goodbit;
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
         while (pattern != pat_end && err == std::ios_base::goodbit)
         {
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
             if (s == end)
             {
                 err |= std::ios_base::failbit;
                 break;
             }
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
             if (ct.narrow(*pattern, 0) == '%')
             {
                 if (++pattern == pat_end)
@@ -165,16 +159,12 @@
                     err |= std::ios_base::failbit;
                     break;
                 }
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
                 char cmd = ct.narrow(*pattern, 0);
- std::cerr << __FILE__ << ":"<<__LINE__ << ": cmd "<< cmd << std::endl;
                 switch (cmd)
                 {
                 case 'v':
                 {
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << "- " << r << std::endl;
                   s=get_value(s, end, ios, err, r);
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << "+ " << r << std::endl;
                   if ((err & std::ios_base::failbit) != 0)
                   {
                     return s;
@@ -183,9 +173,7 @@
                 }
                 case 'u':
                 {
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << "- ["<<rt.num <<"/" <<rt.den <<"]"<< std::endl;
                   s = get_unit<Rep>(s, end, ios, err, rt);
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << "+ ["<<rt.num <<"/" <<rt.den <<"]"<< std::endl;
                   break;
                 }
                 case 'x':
@@ -201,7 +189,6 @@
                 }
 
                 ++pattern;
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
             }
             else if (ct.is(std::ctype_base::space, *pattern))
             {
@@ -209,23 +196,19 @@
                     ;
                 for ( ; s != end && ct.is(std::ctype_base::space, *s); ++s)
                     ;
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
             }
             else if (ct.toupper(*s) == ct.toupper(*pattern))
             {
                 ++s;
                 ++pattern;
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
             }
             else {
                 err |= std::ios_base::failbit;
             }
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
 
         }
         if (s == end)
             err |= std::ios_base::eofbit;
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
 
         unsigned long long num = rt.num;
         unsigned long long den = rt.den;
@@ -284,55 +267,8 @@
         // Success! Store it.
         r = Rep(t);
         d = duration<Rep, Period> (r);
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
 
         return s;
-
-#else
-
-
- for (; pattern != pat_end; ++pattern)
- {
- // FIXME: Shouldn't "uvx" be a basic_string<CharT> ?????
- if ( (*pattern != CharT('%')) || ( (pattern + 1) == pat_end) || (!std::strchr("uvx", * (pattern + 1))))
- {
- //if (*s++ == *pattern)
-
- }
- else
- {
- ++pattern;
- switch (*pattern)
- {
- case 'v':
- {
- s=get_value(s, end, ios, err, r);
- if ((err & std::ios_base::failbit) != 0)
- {
- return s;
- }
- break;
- }
- case 'u':
- {
- //s = get_unit(s, end, ios, err, d);
- break;
- }
- case 'x':
- {
- std::basic_string<CharT> pat = std::use_facet<duration_units<CharT> >(ios.getloc()).get_pattern();
- pattern = pat.data();
- pat_end = pattern + pat.size();
- break;
- }
- default:
- BOOST_ASSERT(false && "Boost::Chrono internal error.");
- break;
- }
- }
- }
-#endif
- return s;
       }
 
       /**
@@ -368,9 +304,7 @@
       template <typename Rep>
       iter_type get_value(iter_type s, iter_type end, std::ios_base& ios, std::ios_base::iostate& err, Rep& r) const
       {
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
         return std::use_facet<std::num_get<CharT, iter_type> >(ios.getloc()).get(s, end, ios, err, r);
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
       }
 
       /**
@@ -386,10 +320,11 @@
       iter_type get_unit(iter_type i, iter_type e, std::ios_base& is, std::ios_base::iostate& err,
           detail::rt_ratio &rt) const
       {
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
         if (!std::has_facet<duration_units<CharT> >(is.getloc())) is.imbue(
             std::locale(is.getloc(), new duration_units_default<CharT> ()));
 
+ duration_units<CharT> const &facet = std::use_facet<duration_units<CharT> >(is.getloc());
+
         // unit is num / den (yet to be determined)
         unsigned long long num = 0;
         unsigned long long den = 0;
@@ -437,8 +372,8 @@
           }
           const std::basic_string<CharT> units[] =
           {
- std::use_facet<duration_units<CharT> >(is.getloc()).template get_plural_form<ratio<1> >(duration_style::prefix, 1),
- std::use_facet<duration_units<CharT> >(is.getloc()).template get_plural_form<ratio<1> >(duration_style::symbol, 1)
+ facet.template get_plural_form<ratio<1> >(duration_style::prefix, 1),
+ facet.template get_plural_form<ratio<1> >(duration_style::symbol, 1)
           };
           // FIXME is this necessary?????
           err = std::ios_base::goodbit;
@@ -461,63 +396,63 @@
 
           const std::basic_string<CharT> units[] =
           {
- duration_unit<CharT> (is.getloc(), true, duration<Rep, atto> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, atto> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, atto> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, femto> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, femto> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, femto> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, pico> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, pico> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, pico> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, nano> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, nano> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, nano> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, micro> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, micro> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, micro> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, milli> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, milli> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, milli> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, centi> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, centi> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, centi> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, deci> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, deci> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, deci> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, deca> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, deca> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, deca> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, hecto> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, hecto> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, hecto> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, kilo> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, kilo> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, kilo> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, mega> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, mega> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, mega> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, giga> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, giga> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, giga> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, giga> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, tera> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, giga> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, peta> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, peta> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, peta> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, exa> (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, exa> (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, exa> (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, ratio<1> > (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, ratio<1> > (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, ratio<1> > (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, ratio<60> > (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, ratio<60> > (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, ratio<60> > (1)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, ratio<3600> > (2)),
- duration_unit<CharT> (is.getloc(), true, duration<Rep, ratio<3600> > (1)),
- duration_unit<CharT> (is.getloc(), false, duration<Rep, ratio<3600> > (1)),
+ facet.template get_plural_form<atto>(duration_style::prefix, 1),
+ facet.template get_plural_form<atto>(duration_style::prefix, 0),
+ facet.template get_plural_form<atto>(duration_style::symbol, 0),
+ facet.template get_plural_form<femto>(duration_style::prefix, 1),
+ facet.template get_plural_form<femto>(duration_style::prefix, 0),
+ facet.template get_plural_form<femto>(duration_style::symbol, 0),
+ facet.template get_plural_form<pico>(duration_style::prefix, 1),
+ facet.template get_plural_form<pico>(duration_style::prefix, 0),
+ facet.template get_plural_form<pico>(duration_style::symbol, 0),
+ facet.template get_plural_form<nano>(duration_style::prefix, 1),
+ facet.template get_plural_form<nano>(duration_style::prefix, 0),
+ facet.template get_plural_form<nano>(duration_style::symbol, 0),
+ facet.template get_plural_form<micro>(duration_style::prefix, 1),
+ facet.template get_plural_form<micro>(duration_style::prefix, 0),
+ facet.template get_plural_form<micro>(duration_style::symbol, 0),
+ facet.template get_plural_form<milli>(duration_style::prefix, 1),
+ facet.template get_plural_form<milli>(duration_style::prefix, 0),
+ facet.template get_plural_form<milli>(duration_style::symbol, 0),
+ facet.template get_plural_form<centi>(duration_style::prefix, 1),
+ facet.template get_plural_form<centi>(duration_style::prefix, 0),
+ facet.template get_plural_form<centi>(duration_style::symbol, 0),
+ facet.template get_plural_form<deci>(duration_style::prefix, 1),
+ facet.template get_plural_form<deci>(duration_style::prefix, 0),
+ facet.template get_plural_form<deci>(duration_style::symbol, 0),
+ facet.template get_plural_form<deca>(duration_style::prefix, 1),
+ facet.template get_plural_form<deca>(duration_style::prefix, 0),
+ facet.template get_plural_form<deca>(duration_style::symbol, 0),
+ facet.template get_plural_form<hecto>(duration_style::prefix, 1),
+ facet.template get_plural_form<hecto>(duration_style::prefix, 0),
+ facet.template get_plural_form<hecto>(duration_style::symbol, 0),
+ facet.template get_plural_form<kilo>(duration_style::prefix, 1),
+ facet.template get_plural_form<kilo>(duration_style::prefix, 0),
+ facet.template get_plural_form<kilo>(duration_style::symbol, 0),
+ facet.template get_plural_form<mega>(duration_style::prefix, 1),
+ facet.template get_plural_form<mega>(duration_style::prefix, 0),
+ facet.template get_plural_form<mega>(duration_style::symbol, 0),
+ facet.template get_plural_form<giga>(duration_style::prefix, 1),
+ facet.template get_plural_form<giga>(duration_style::prefix, 0),
+ facet.template get_plural_form<giga>(duration_style::symbol, 0),
+ facet.template get_plural_form<tera>(duration_style::prefix, 1),
+ facet.template get_plural_form<tera>(duration_style::prefix, 0),
+ facet.template get_plural_form<tera>(duration_style::symbol, 0),
+ facet.template get_plural_form<peta>(duration_style::prefix, 1),
+ facet.template get_plural_form<peta>(duration_style::prefix, 0),
+ facet.template get_plural_form<peta>(duration_style::symbol, 0),
+ facet.template get_plural_form<exa>(duration_style::prefix, 1),
+ facet.template get_plural_form<exa>(duration_style::prefix, 0),
+ facet.template get_plural_form<exa>(duration_style::symbol, 0),
+ facet.template get_plural_form<ratio<1> >(duration_style::prefix, 1),
+ facet.template get_plural_form<ratio<1> >(duration_style::prefix, 0),
+ facet.template get_plural_form<ratio<1> >(duration_style::symbol, 0),
+ facet.template get_plural_form<ratio<60> >(duration_style::prefix, 1),
+ facet.template get_plural_form<ratio<60> >(duration_style::prefix, 0),
+ facet.template get_plural_form<ratio<60> >(duration_style::symbol, 0),
+ facet.template get_plural_form<ratio<3600> >(duration_style::prefix, 1),
+ facet.template get_plural_form<ratio<3600> >(duration_style::prefix, 0),
+ facet.template get_plural_form<ratio<3600> >(duration_style::symbol, 0)
               };
           std::ios_base::iostate err = std::ios_base::goodbit;
           const std::basic_string<CharT>* k = chrono_detail::scan_keyword(i, e, units,
@@ -610,7 +545,6 @@
         // unit is num/den
 
         rt = detail::rt_ratio(num,den);
- std::cerr << __FILE__ << ":"<<__LINE__ << ":"<< int(err) << std::endl;
         return i;
       }
 

Modified: trunk/boost/chrono/io/duration_put.hpp
==============================================================================
--- trunk/boost/chrono/io/duration_put.hpp (original)
+++ trunk/boost/chrono/io/duration_put.hpp 2011-10-31 18:41:49 EDT (Mon, 31 Oct 2011)
@@ -94,7 +94,6 @@
         if (!std::has_facet<duration_units<CharT> >(ios.getloc())) ios.imbue(
             std::locale(ios.getloc(), new duration_units_default<CharT> ()));
 
-#if 1
         const std::ctype<char_type>& ct = std::use_facet<std::ctype<char_type> >(ios.getloc());
         for (; pattern != pat_end; ++pattern)
         {
@@ -133,44 +132,6 @@
             else
                 *s++ = *pattern;
         }
-
-#else
- for (; pattern != pat_end; ++pattern)
- {
- // FIXME: Shouldn't "uvx" be a basic_string<CharT> ?????
- if ( (*pattern != CharT('%')) || ( (pattern + 1) == pat_end) || (!std::strchr("uvx", * (pattern + 1))))
- {
- *s++ = *pattern;
- }
- else
- {
- ++pattern;
- switch (*pattern)
- {
- case 'v':
- {
- s = put_value(s, ios, d);
- break;
- }
- case 'u':
- {
- s = put_unit(s, ios, d);
- break;
- }
- case 'x':
- {
- std::basic_string<CharT> pat = std::use_facet<duration_units<CharT> >(ios.getloc()).get_pattern();
- pattern = pat.data();
- pat_end = pattern + pat.size();
- break;
- }
- default:
- BOOST_ASSERT(false && "Boost::Chrono internal error.");
- break;
- }
- }
- }
-#endif
         return s;
       }
 

Modified: trunk/boost/chrono/io/duration_units.hpp
==============================================================================
--- trunk/boost/chrono/io/duration_units.hpp (original)
+++ trunk/boost/chrono/io/duration_units.hpp 2011-10-31 18:41:49 EDT (Mon, 31 Oct 2011)
@@ -81,6 +81,10 @@
     {
     };
     template <>
+ struct is_localizable<giga> : true_type
+ {
+ };
+ template <>
     struct is_localizable<tera> : true_type
     {
     };
@@ -113,7 +117,7 @@
         {
         }
 
- rt_ratio(intmax_t n=0, intmax_t d=0) :
+ rt_ratio(intmax_t n = 0, intmax_t d = 0) :
           num(n), den(d)
         {
         }
@@ -225,12 +229,11 @@
        */
       template <typename Period>
       typename enable_if<is_localizable<Period> , std::basic_string<CharT> >::type get_plural_form(
- duration_style::type style, std::size_t pf) const
+ duration_style_type style, std::size_t pf) const
       {
         return do_get_plural_form(style, Period(), pf);
       }
 
-
       /**
        *
        * @return the pattern to be used by default.
@@ -247,63 +250,64 @@
 
       // used for ouput
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, atto, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, atto, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, pico, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, femto, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, nano, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, pico, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, micro, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, nano, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, milli, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, micro, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, centi, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, milli, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, deci, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, centi, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, ratio<1> , int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, deci, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, deca, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, ratio<1> , int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, hecto, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, deca, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, kilo, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, hecto, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, mega, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, kilo, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, tera, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, mega, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, peta, int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, tera, int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, exa, int_least64_t) const = 0;
- virtual iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, detail::rt_ratio,
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, peta, int_least64_t) const = 0;
+ virtual iter_type
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, exa, int_least64_t) const = 0;
+ virtual iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, detail::rt_ratio,
           int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, ratio<60> , int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, ratio<60> , int_least64_t) const = 0;
       virtual iter_type
- do_put(iter_type s, std::ios_base& ios, duration_style::type style, ratio<3600> , int_least64_t) const = 0;
+ do_put(iter_type s, std::ios_base& ios, duration_style_type style, ratio<3600> , int_least64_t) const = 0;
 
       // used for input
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, atto, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, pico, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, nano, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, micro, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, milli, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, centi, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, deci, std::size_t pf) const = 0;
- virtual std::basic_string<CharT>
- do_get_plural_form(duration_style::type style, ratio<1> , std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, deca, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, hecto, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, kilo, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, mega, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, giga, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, tera, std::size_t pf) const = 0;
- // virtual std::basic_string<CharT> do_get_plural_form(duration_style::type style, exa, std::size_t pf) const = 0;
- virtual std::basic_string<CharT>
- do_get_plural_form(duration_style::type style, ratio<60> , std::size_t pf) const = 0;
- virtual std::basic_string<CharT>
- do_get_plural_form(duration_style::type style, ratio<3600> , std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, atto, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, femto, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, pico, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, nano, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, micro, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, milli, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, centi, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, deci, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, ratio<1> , std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, deca, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, hecto, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, kilo, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, mega, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, giga, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, tera, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, peta, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, exa, std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, ratio<60> , std::size_t pf) const = 0;
+ virtual std::basic_string<CharT> do_get_plural_form(duration_style_type style, ratio<3600> , std::size_t pf) const = 0;
 
     };
 
@@ -348,117 +352,123 @@
         return pattern;
       }
 
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, atto u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, atto u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, pico u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, femto u, int_least64_t value) const
+ {
+ std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
+ std::copy(str.begin(), str.end(), s);
+ return do_put(s, ios, style, ratio<1> (), value);
+ }
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, pico u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
 
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, nano u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, nano u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, micro u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, micro u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, milli u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, milli u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, centi u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, centi u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, deci u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, deci u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base&, duration_style::type style, ratio<1> u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base&, duration_style_type style, ratio<1> u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_plural_form(style, u, do_get_plural_form(value));
         return std::copy(str.begin(), str.end(), s);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, deca u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, deca u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, hecto u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, hecto u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
 
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, kilo u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, kilo u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, mega u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, mega u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, giga u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, giga u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, tera u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, tera u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, peta u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, peta u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, exa u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, exa u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_ratio_prefix(style, u);
         std::copy(str.begin(), str.end(), s);
         return do_put(s, ios, style, ratio<1> (), value);
       }
 
- iter_type do_put(iter_type s, std::ios_base&, duration_style::type style, ratio<60> u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base&, duration_style_type style, ratio<60> u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_plural_form(style, u, do_get_plural_form(value));
         return std::copy(str.begin(), str.end(), s);
       }
 
- iter_type do_put(iter_type s, std::ios_base&, duration_style::type style, ratio<3600> u, int_least64_t value) const
+ iter_type do_put(iter_type s, std::ios_base&, duration_style_type style, ratio<3600> u, int_least64_t value) const
       {
         std::basic_string<CharT> str = do_get_plural_form(style, u, do_get_plural_form(value));
         return std::copy(str.begin(), str.end(), s);
       }
 
- iter_type do_put(iter_type s, std::ios_base& ios, duration_style::type style, detail::rt_ratio rtr,
+ iter_type do_put(iter_type s, std::ios_base& ios, duration_style_type style, detail::rt_ratio rtr,
           int_least64_t value) const
       {
         *s++ = CharT('[');
@@ -470,7 +480,7 @@
         return do_put(s, ios, style, ratio<1> (), value);
       }
 
- std::basic_string<CharT> do_get_plural_form(duration_style::type style, ratio<1> , std::size_t pf) const
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, ratio<1> , std::size_t pf) const
       {
         static const CharT t[] =
         { 's' };
@@ -489,7 +499,7 @@
         throw "exception";
       }
 
- std::basic_string<CharT> do_get_plural_form(duration_style::type style, ratio<60> , std::size_t pf) const
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, ratio<60> , std::size_t pf) const
       {
         static const CharT t[] =
         { 'm', 'i', 'n' };
@@ -509,7 +519,7 @@
         throw "exception";
       }
 
- std::basic_string<CharT> do_get_plural_form(duration_style::type style, ratio<3600> , std::size_t pf) const
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, ratio<3600> , std::size_t pf) const
       {
         static const CharT t[] =
         { 'h' };
@@ -527,34 +537,74 @@
         // assert
         throw "exception";
       }
- // std::basic_string<CharT> do_get_plural_form(duration_style::type style, duration<boost::int_least64_t, atto>, std::size_t pf) const
- // {
- // return to_string(style, atto())+do_get_plural_form(style, ratio<1>(), pf);
- // }
- // std::basic_string<CharT> do_get_plural_form(duration_style::type style, duration<boost::int_least64_t, pico>, std::size_t pf) const
- // {
- // return to_string(style, pico())+do_get_plural_form(style, ratio<1>(), pf);
- // }
- // std::basic_string<CharT> do_get_plural_form(duration_style::type style, duration<boost::int_least64_t, nano>, std::size_t pf) const
- // {
- // return to_string(style, nano())+do_get_plural_form(style, ratio<1>(), pf);
- // }
- // std::basic_string<CharT> do_get_plural_form(duration_style::type style, duration<boost::int_least64_t, micro>, std::size_t pf) const
- // {
- // return to_string(style, micro())+do_get_plural_form(style, ratio<1>(), pf);
- // }
- // std::basic_string<CharT> do_get_plural_form(duration_style::type style, duration<boost::int_least64_t, milli>, std::size_t pf) const
- // {
- // return to_string(style, milli())+do_get_plural_form(style, ratio<1>(), pf);
- // }
- // std::basic_string<CharT> do_get_plural_form(duration_style::type style, duration<boost::int_least64_t, centi>, std::size_t pf) const
- // {
- // return to_string(style, centi())+do_get_plural_form(style, ratio<1>(), pf);
- // }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, atto u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, femto u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, pico u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, nano u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, micro u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, milli u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, centi u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, deci u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, deca u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, hecto u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, kilo u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, mega u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, giga u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, tera u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, peta u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
+ std::basic_string<CharT> do_get_plural_form(duration_style_type style, exa u, std::size_t pf) const
+ {
+ return do_get_ratio_prefix(style, u) + do_get_plural_form(style, ratio<1> (), pf);
+ }
 
     protected:
 
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, atto) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, atto) const
       {
         static const CharT u[] =
         { 'a', 't', 't', 'o' };
@@ -566,7 +616,19 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, pico) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, femto) const
+ {
+ static const CharT u[] =
+ { 'f', 'e', 'm', 't', 'o' };
+ static const std::basic_string<CharT> prefix(u, u + sizeof (u) / sizeof (u[0]));
+ static const CharT v[] =
+ { 'f' };
+ static const std::basic_string<CharT> symbol(v, v + sizeof (v) / sizeof (v[0]));
+
+ if (style == duration_style::symbol) return symbol;
+ return prefix;
+ }
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, pico) const
       {
         static const CharT u[] =
         { 'p', 'i', 'c', 'o' };
@@ -578,7 +640,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, nano) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, nano) const
       {
         static const CharT u[] =
         { 'n', 'a', 'n', 'o' };
@@ -590,7 +652,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, micro) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, micro) const
       {
         static const CharT u[] =
         { 'm', 'i', 'c', 'r', 'o' };
@@ -603,7 +665,7 @@
         return prefix;
       }
 
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, milli) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, milli) const
       {
         static const CharT u[] =
         { 'm', 'i', 'l', 'l', 'i' };
@@ -615,7 +677,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, centi) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, centi) const
       {
         static const CharT u[] =
         { 'c', 'e', 'n', 't', 'i' };
@@ -627,7 +689,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, deci) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, deci) const
       {
         static const CharT u[] =
         { 'd', 'e', 'c', 'i' };
@@ -639,7 +701,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, deca) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, deca) const
       {
         static const CharT u[] =
         { 'd', 'e', 'c', 'a' };
@@ -651,7 +713,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, hecto) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, hecto) const
       {
         static const CharT u[] =
         { 'h', 'e', 'c', 't', 'o' };
@@ -663,7 +725,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, kilo) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, kilo) const
       {
         static const CharT u[] =
         { 'k', 'i', 'l', 'o' };
@@ -675,7 +737,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, mega) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, mega) const
       {
         static const CharT u[] =
         { 'm', 'e', 'g', 'a' };
@@ -687,7 +749,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, giga) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, giga) const
       {
         static const CharT u[] =
         { 'g', 'i', 'g', 'a' };
@@ -699,7 +761,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, tera) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, tera) const
       {
         static const CharT u[] =
         { 't', 'e', 'r', 'a' };
@@ -711,7 +773,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, peta) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, peta) const
       {
         static const CharT u[] =
         { 'p', 'e', 't', 'a' };
@@ -723,7 +785,7 @@
         if (style == duration_style::symbol) return symbol;
         return prefix;
       }
- virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style::type style, exa) const
+ virtual std::basic_string<CharT> do_get_ratio_prefix(duration_style_type style, exa) const
       {
         static const CharT u[] =
         { 'e', 'x', 'a' };
@@ -752,7 +814,7 @@
   template <typename CharT, typename Rep, typename Period>
   typename enable_if<is_localizable<Period>, std::basic_string<CharT> >::type
   to_basic_string(
- duration_style::type style,
+ duration_style_type style,
       duration<Rep,Period> value,
       std::locale const &loc
   )
@@ -781,7 +843,7 @@
   template <typename CharT, typename Rep, typename Period>
   typename disable_if<is_localizable<Period> , std::basic_string<CharT> >::type
   to_basic_string(
- duration_style::type style,
+ duration_style_type style,
       duration<Rep,Period> value,
       std::locale const& loc
   )
@@ -809,7 +871,7 @@
   template <typename CharT, typename Rep, typename Period>
   typename enable_if<is_localizable<Period>, std::basic_string<CharT> >::type
   to_basic_string(
- duration_style::type style,
+ duration_style_type style,
       duration<process_times<Rep>,Period> value,
       std::locale const &loc
   )
@@ -838,7 +900,7 @@
   template <typename CharT, typename Rep, typename Period>
   typename disable_if<is_localizable<Period> , std::basic_string<CharT> >::type
   to_basic_string(
- duration_style::type style,
+ duration_style_type style,
       duration<process_times<Rep>,Period> value,
       std::locale const& loc
   )
@@ -865,7 +927,7 @@
 
   template <typename CharT, typename Rep, typename Period>
   std::basic_string<CharT>
- to_basic_string(duration_style::type style, duration<Rep,Period> value)
+ to_basic_string(duration_style_type style, duration<Rep,Period> value)
   {
     return to_basic_string<CharT>(style, value, std::locale());
   }


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