• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>Reference</title>
6<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="../chrono.html" title="Chapter 7. Boost.Chrono 2.0.8">
10<link rel="prev" href="users_guide.html" title="User's Guide">
11<link rel="next" href="appendices.html" title="Appendices">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
16<td align="center"><a href="../../../index.html">Home</a></td>
17<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="users_guide.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../chrono.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="section">
27<div class="titlepage"><div><div><h2 class="title" style="clear: both">
28<a name="chrono.reference"></a><a class="link" href="reference.html" title="Reference">Reference </a>
29</h2></div></div></div>
30<div class="toc"><dl class="toc">
31<dt><span class="section"><a href="reference.html#chrono.reference.chrono_include_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">include</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
32<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x">Included on the C++11 Recommendation</a></span></dt>
33<dt><span class="section"><a href="reference.html#chrono.reference.io_v1">Chrono I/O V1</a></span></dt>
34<dt><span class="section"><a href="reference.html#chrono.reference.io">Chrono I/O V2</a></span></dt>
35<dt><span class="section"><a href="reference.html#chrono.reference.round">Chrono Rounding Utilities</a></span></dt>
36<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks">Other Clocks</a></span></dt>
37</dl></div>
38<p>
39      As <code class="computeroutput"><span class="keyword">constexpr</span></code> will not be supported
40      by some compilers, it is replaced in the code by <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
41      for <code class="computeroutput"><span class="keyword">constexpr</span></code> functions and <code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code> for struct/class static
42      fields. The same applies to <code class="computeroutput"><span class="identifier">noexecpt</span></code>
43      which is replaced by <code class="computeroutput"><span class="keyword">noexcept</span></code>
44      in the code.
45    </p>
46<p>
47      The documentation doesn't use these macros.
48    </p>
49<div class="section">
50<div class="titlepage"><div><div><h3 class="title">
51<a name="chrono.reference.chrono_include_hpp"></a><a class="link" href="reference.html#chrono.reference.chrono_include_hpp" title="Header &lt;boost/chrono/include.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">include</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
52</h3></div></div></div>
53<p>
54        Include all the chrono header files.
55      </p>
56<pre class="programlisting"><span class="preprocessor">#include</span> <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">chrono</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
57<span class="preprocessor">#include</span> <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">chrono_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
58<span class="preprocessor">#include</span> <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>
59<span class="preprocessor">#include</span> <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">thread_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
60<span class="preprocessor">#include</span> <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">ceil</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
61<span class="preprocessor">#include</span> <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">floor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
62<span class="preprocessor">#include</span> <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">round</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
63</pre>
64</div>
65<div class="section">
66<div class="titlepage"><div><div><h3 class="title">
67<a name="chrono.reference.cpp0x"></a><a class="link" href="reference.html#chrono.reference.cpp0x" title="Included on the C++11 Recommendation">Included on the C++11 Recommendation</a>
68</h3></div></div></div>
69<div class="toc"><dl class="toc">
70<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.chrono_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">hpp</span><span class="special">&gt;</span></code></a></span></dt>
71<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.chrono_chrono_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">chrono</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
72<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_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">duration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
73<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.clock"><code class="computeroutput"><span class="identifier">Clock</span></code>
74        Requirements</a></span></dt>
75<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.trivial_clock"><code class="computeroutput"><span class="identifier">TrivialClock</span></code> Requirements</a></span></dt>
76<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.ecclock"><code class="computeroutput"><span class="identifier">EcClock</span></code>
77        Requirements</a></span></dt>
78<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.time_point_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_point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
79<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.system_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">system_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
80<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.clock_strings_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">clock_strings</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
81<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.chrono_typeof_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">typeof</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
82</dl></div>
83<div class="section">
84<div class="titlepage"><div><div><h4 class="title">
85<a name="chrono.reference.cpp0x.chrono_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_hpp" title="Header &lt;boost/chrono.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">hpp</span><span class="special">&gt;</span></code></a>
86</h4></div></div></div>
87<p>
88          Include only the standard files.
89        </p>
90<pre class="programlisting"><span class="preprocessor">#include</span> <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">chrono</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
91</pre>
92</div>
93<div class="section">
94<div class="titlepage"><div><div><h4 class="title">
95<a name="chrono.reference.cpp0x.chrono_chrono_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp" title="Header &lt;boost/chrono/chrono.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">chrono</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
96</h4></div></div></div>
97<div class="toc"><dl class="toc">
98<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.limitations">Limitations
99          and Extensions</a></span></dt>
100<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf">Configuration
101          Macros</a></span></dt>
102</dl></div>
103<p>
104          Include only the standard files.
105        </p>
106<pre class="programlisting"><span class="preprocessor">#include</span> <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">duration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
107<span class="preprocessor">#include</span> <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_point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
108<span class="preprocessor">#include</span> <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">system_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
109<span class="preprocessor">#include</span> <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">typeof</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
110</pre>
111<div class="section">
112<div class="titlepage"><div><div><h5 class="title">
113<a name="chrono.reference.cpp0x.chrono_chrono_hpp.limitations"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.limitations" title="Limitations and Extensions">Limitations
114          and Extensions</a>
115</h5></div></div></div>
116<p>
117            At present, there is no know limitation respect to the C++11 standard.
118          </p>
119<p>
120            The current implementation provides in addition:
121          </p>
122<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
123<li class="listitem">
124                clock error handling as specified in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3135.html#935" target="_top">clock
125                error handling needs to be specified</a>.
126              </li>
127<li class="listitem">
128                process and thread clocks.
129              </li>
130</ul></div>
131</div>
132<div class="section">
133<div class="titlepage"><div><div><h5 class="title">
134<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf" title="Configuration Macros">Configuration
135          Macros</a>
136</h5></div></div></div>
137<div class="section">
138<div class="titlepage"><div><div><h6 class="title">
139<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.assert"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.assert" title="How Assert Behaves?">How
140            Assert Behaves?</a>
141</h6></div></div></div>
142<p>
143              When <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code>
144              is defined, the user can select the way static assertions are reported.
145              Define
146            </p>
147<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
148<li class="listitem">
149                  <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_STATIC_ASSERT</span></code>:
150                  define it if you want to use Boost.StaticAssert.
151                </li>
152<li class="listitem">
153                  <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_MPL_ASSERT</span></code>:
154                  define it if you want to use Boost.MPL static assertions.
155                </li>
156<li class="listitem">
157                  <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_ARRAY_ASSERT</span></code>:
158                  define it if you want to use internal static assertions.
159                </li>
160</ul></div>
161<p>
162              The default behavior is as <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_ARRAY_ASSERT</span></code>
163              was defined.
164            </p>
165<p>
166              When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_MPL_ASSERT</span></code>
167              is not defined the following symbols are defined as
168            </p>
169<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_A_DURATION_REPRESENTATION_CAN_NOT_BE_A_DURATION</span> <span class="special">\</span>
170    <span class="string">"A duration representation can not be a duration"</span>
171<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_SECOND_TEMPLATE_PARAMETER_OF_DURATION_MUST_BE_A_STD_RATIO</span> <span class="special">\</span>
172    <span class="string">"Second template parameter of duration must be a boost::ratio"</span>
173<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_DURATION_PERIOD_MUST_BE_POSITIVE</span> <span class="special">\</span>
174    <span class="string">"duration period must be positive"</span>
175<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_SECOND_TEMPLATE_PARAMETER_OF_TIME_POINT_MUST_BE_A_BOOST_CHRONO_DURATION</span> <span class="special">\</span>
176    <span class="string">"Second template parameter of time_point must be a boost::chrono::duration"</span>
177</pre>
178<p>
179              Depending on the static assertion used system you will have an hint
180              of the failing assertion either through the symbol or through the text.
181            </p>
182</div>
183<div class="section">
184<div class="titlepage"><div><div><h6 class="title">
185<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.no_hybrid"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.no_hybrid" title="Don't provide Hybrid Error Handling">Don't
186            provide Hybrid Error Handling</a>
187</h6></div></div></div>
188<p>
189              When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING</span></code>
190              is defined the lib doesn't provides the hybrid error handling prototypes:
191            </p>
192<pre class="programlisting"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">time_point</span> <span class="identifier">Clock</span><span class="special">::</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">boost</span><span class="special">::</span><span class="identifier">throws</span><span class="special">());</span>
193</pre>
194<p>
195              This allow to be closer to the standard and to avoid the Boost.System
196              dependency, making possible to have Boost.Chrono as a header-only library.
197            </p>
198<p>
199              By default <code class="computeroutput"><span class="identifier">BOOST_CHRONO_PROVIDE_HYBRID_ERROR_HANDLING</span></code>
200              is defined.
201            </p>
202</div>
203<div class="section">
204<div class="titlepage"><div><div><h6 class="title">
205<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.header_only"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.header_only" title="How to Build Boost.Chrono as a Header Only Library?">How
206            to Build Boost.Chrono as a Header Only Library?</a>
207</h6></div></div></div>
208<p>
209              When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HEADER_ONLY</span></code>
210              is defined the lib is header-only.
211            </p>
212<p>
213              If in addition <code class="computeroutput"><span class="identifier">BOOST_USE_WINDOWS_H</span></code>
214              is defined <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">windows</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code> is included, otherwise files in
215              <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">win</span></code> are used to reduce the impact
216              of including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">windows</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
217            </p>
218<p>
219              However, you will either need to define <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING</span></code>
220              or link with Boost.System.
221            </p>
222</div>
223<div class="section">
224<div class="titlepage"><div><div><h6 class="title">
225<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.deprecated_io"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.deprecated_io" title="Deprecated IO">Deprecated
226            IO</a>
227</h6></div></div></div>
228<p>
229              Version 2.0.0 deprecates the preceding IO features.
230            </p>
231<p>
232              However the default version is always version 1. If you don't want
233              to include the deprecated features you could define <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDES_DEPRECATED_IO_SINCE_V2_0_0</span></code>.
234            </p>
235</div>
236<div class="section"><div class="titlepage"><div><div><h6 class="title">
237<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.system_clock_time_point"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.system_clock_time_point" title="time_point&lt;system_clock,D&gt; specialization limitation">time_point&lt;system_clock,D&gt;
238            specialization limitation</a>
239</h6></div></div></div></div>
240<div class="section">
241<div class="titlepage"><div><div><h6 class="title">
242<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.version"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.version" title="Version">Version</a>
243</h6></div></div></div>
244<p>
245              <code class="computeroutput"><span class="identifier">BOOST_CHRONO_VERSION</span></code>
246              defines the Boost.Chrono version. The default version is 1. In this
247              case the following breaking or extending macros are defined if the
248              opposite is not requested:
249            </p>
250<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
251                  <code class="computeroutput"><span class="identifier">BOOST_CHRONO_PROVIDES_DEPRECATED_IO_SINCE_V2_0_0</span></code>
252                </li></ul></div>
253<p>
254              The user can request the version 2 by defining <code class="computeroutput"><span class="identifier">BOOST_CHRONO_VERSION</span></code>
255              to 2. In this case the following breaking or extending macros are defined
256              if the opposite is not requested:
257            </p>
258<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
259                  Breaking change <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDES_DEPRECATED_IO_SINCE_V2_0_0</span>
260                  </code>
261                </li></ul></div>
262<p>
263              The default value for <code class="computeroutput"><span class="identifier">BOOST_CHRONO_VERSION</span></code>
264              will be changed to 2 since Boost 1.55.
265            </p>
266</div>
267</div>
268</div>
269<div class="section">
270<div class="titlepage"><div><div><h4 class="title">
271<a name="chrono.reference.cpp0x.duration_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp" title="Header &lt;boost/chrono/duration.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">duration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
272</h4></div></div></div>
273<div class="toc"><dl class="toc">
274<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_hpp.traits">Time-related
275          Traits</a></span></dt>
276<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_hpp.common_type_spe"><code class="computeroutput"><span class="identifier">common_type</span></code> Specialization</a></span></dt>
277<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_hpp.duration">Class
278          Template <code class="computeroutput"><span class="identifier">duration</span><span class="special">&lt;&gt;</span></code></a></span></dt>
279<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_hpp.arith"><code class="computeroutput"><span class="identifier">duration</span></code> Non-Member Arithmetic</a></span></dt>
280<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp"><code class="computeroutput"><span class="identifier">duration</span></code> Non-Member Comparaisons</a></span></dt>
281<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_cast">Non-Member
282          Function <code class="computeroutput"><span class="identifier">duration_cast</span><span class="special">(</span><span class="identifier">duration</span><span class="special">)</span></code></a></span></dt>
283<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs"><code class="computeroutput"><span class="identifier">duration</span></code> typedefs</a></span></dt>
284</dl></div>
285<p>
286          This file contains duration specific classes and non-member functions.
287        </p>
288<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
289  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
290
291    <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">=</span> <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;</span> <span class="special">&gt;</span>  <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">;</span>
292
293  <span class="special">}</span>
294  <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>
295  <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.common_type_spe" title="common_type Specialization"><code class="computeroutput"><span class="identifier">common_type</span></code></a><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>
296                     <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>
297
298  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
299
300    <span class="comment">// customization traits</span>
301    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.treat_as_floating_point" title="Metafunction treat_as_floating_point&lt;&gt;"><code class="computeroutput"><span class="identifier">treat_as_floating_point</span></code></a><span class="special">;</span>
302    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a><span class="special">;</span>
303
304    <span class="comment">// duration arithmetic</span>
305    <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>
306    <span class="keyword">constexpr</span>
307    <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>
308    <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_plus_1" title="Non-Member Function operator+(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code></a><span class="special">(</span>
309        <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>
310        <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>
311
312    <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>
313    <span class="keyword">constexpr</span>
314    <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>
315    <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_minus_1" title="Non-Member Function operator-(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code></a><span class="special">(</span>
316        <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>
317        <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>
318
319    <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>
320    <span class="keyword">constexpr</span>
321    <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>
322    <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_1" title="Non-Member Function operator*(duration,Rep1)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code></a><span class="special">(</span>
323        <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>
324        <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span>
325
326    <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>
327    <span class="keyword">constexpr</span>
328    <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>
329    <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_2" title="Non-Member Function operator*(Rep1,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code></a><span class="special">(</span>
330        <span class="keyword">const</span> <span class="identifier">Rep1</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span>
331        <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">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
332
333    <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>
334    <span class="keyword">constexpr</span>
335    <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>
336    <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_2" title="Non-Member Function operator/(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code></a><span class="special">(</span>
337        <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>
338        <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span>
339
340    <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>
341    <span class="keyword">constexpr</span>
342    <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>
343    <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_3" title="Non-Member Function operator/(Rep1,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code></a><span class="special">(</span>
344        <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>
345        <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>
346
347    <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_CHRONO_EXTENSIONS</span>
348    <span class="comment">// Used to get frequency of events</span>
349    <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">Rep2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
350    <span class="keyword">constexpr</span>
351    <span class="keyword">double</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_1" title="Non-Member Function operator/(duration,Rep2)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code></a><span class="special">(</span>
352        <span class="keyword">const</span> <span class="identifier">Rep1</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span>
353        <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">Period</span><span class="special">&gt;&amp;</span> <span class="identifier">d</span><span class="special">);</span>
354    <span class="preprocessor">#endif</span>
355
356    <span class="comment">// duration comparisons</span>
357    <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>
358    <span class="keyword">constexpr</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_eq_1" title="Non-Member Function operator==(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code></a><span class="special">(</span>
359        <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>
360        <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>
361
362    <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>
363    <span class="keyword">constexpr</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_neq_1" title="Non-Member Function operator!=(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code></a><span class="special">(</span>
364        <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>
365        <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>
366
367    <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>
368    <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">__duration__op_le_1</span><span class="special">(</span>
369        <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>
370        <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>
371    <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>
372    <span class="keyword">constexpr</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_leq_1" title="Non-Member Function operator&lt;=(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code></a><span class="special">(</span>
373        <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>
374        <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>
375
376    <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>
377    <span class="keyword">constexpr</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_gt_1" title="Non-Member Function operator&gt;(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code></a><span class="special">(</span>
378        <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>
379        <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>
380    <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>
381    <span class="keyword">constexpr</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_geq_1" title="Non-Member Function operator&gt;=(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code></a><span class="special">(</span>
382        <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>
383        <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>
384
385    <span class="comment">// duration_cast</span>
386
387    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ToDuration</span><span class="special">,</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>
388    <span class="keyword">constexpr</span>
389    <span class="identifier">ToDuration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_cast" title="Non-Member Function duration_cast(duration)"><code class="computeroutput"><span class="identifier">duration_cast</span></code></a><span class="special">(</span><span class="keyword">const</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>
390
391    <span class="comment">// convenience typedefs</span>
392    <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">,</span> <span class="identifier">nano</span><span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a><span class="special">;</span>    <span class="comment">// at least 64 bits needed</span>
393    <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">,</span> <span class="identifier">micro</span><span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">microseconds</span></code></a><span class="special">;</span>  <span class="comment">// at least 55 bits needed</span>
394    <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">milliseconds</span></code></a><span class="special">;</span>  <span class="comment">// at least 45 bits needed</span>
395    <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">seconds</span></code></a><span class="special">;</span>              <span class="comment">// at least 35 bits needed</span>
396    <span class="keyword">typedef</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">60</span><span class="special">&gt;</span> <span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">minutes</span></code></a><span class="special">;</span> <span class="comment">// at least 29 bits needed</span>
397    <span class="keyword">typedef</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">3600</span><span class="special">&gt;</span> <span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">hours</span></code></a><span class="special">;</span>  <span class="comment">// at least 23 bits needed</span>
398
399  <span class="special">}</span>
400<span class="special">}</span>
401</pre>
402<div class="section">
403<div class="titlepage"><div><div><h5 class="title">
404<a name="chrono.reference.cpp0x.duration_hpp.traits"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits" title="Time-related Traits">Time-related
405          Traits</a>
406</h5></div></div></div>
407<div class="section">
408<div class="titlepage"><div><div><h6 class="title">
409<a name="chrono.reference.cpp0x.duration_hpp.traits.treat_as_floating_point"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.treat_as_floating_point" title="Metafunction treat_as_floating_point&lt;&gt;">Metafunction
410            <code class="computeroutput"><span class="identifier">treat_as_floating_point</span><span class="special">&lt;&gt;</span></code></a>
411</h6></div></div></div>
412<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span> <span class="keyword">struct</span> <span class="identifier">treat_as_floating_point</span>
413    <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_floating_point</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="special">{};</span>
414</pre>
415<p>
416              The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> template uses the
417              <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.treat_as_floating_point" title="Metafunction treat_as_floating_point&lt;&gt;"><code class="computeroutput"><span class="identifier">treat_as_floating_point</span></code></a> trait
418              to help determine if a <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> with one tick period
419              can be converted to another <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> with a different
420              tick period. If <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>
421              is <code class="computeroutput"><span class="keyword">true</span></code>, then <code class="computeroutput"><span class="identifier">Rep</span></code> is a floating-point type and
422              implicit conversions are allowed among <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>s. Otherwise, the
423              implicit convertibility depends on the tick periods of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>s. If <code class="computeroutput"><span class="identifier">Rep</span></code> is a class type which emulates
424              a floating-point type, the author of <code class="computeroutput"><span class="identifier">Rep</span></code>
425              can specialize <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.treat_as_floating_point" title="Metafunction treat_as_floating_point&lt;&gt;"><code class="computeroutput"><span class="identifier">treat_as_floating_point</span></code></a> so
426              that <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> will treat this
427              <code class="computeroutput"><span class="identifier">Rep</span></code> as if it were a
428              floating-point type. Otherwise <code class="computeroutput"><span class="identifier">Rep</span></code>
429              is assumed to be an integral type, or a class emulating an integral
430              type.
431            </p>
432</div>
433<div class="section">
434<div class="titlepage"><div><div><h6 class="title">
435<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values">Class
436            Template <code class="computeroutput"><span class="identifier">duration_values</span></code></a>
437</h6></div></div></div>
438<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
439<span class="keyword">struct</span> <span class="identifier">duration_values</span>
440<span class="special">{</span>
441<span class="keyword">public</span><span class="special">:</span>
442    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.zero" title="Static Member Function zero()"><code class="computeroutput"><span class="identifier">zero</span></code></a><span class="special">();</span>
443    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.max" title="Static Member Function max()"><code class="computeroutput"><span class="identifier">max</span></code></a><span class="special">();</span>
444    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.min" title="Static Member Function min()"><code class="computeroutput"><span class="identifier">min</span></code></a><span class="special">();</span>
445<span class="special">};</span>
446</pre>
447<p>
448              The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> template uses the
449              <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a> trait to construct
450              special values of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>'s representation
451              (<code class="computeroutput"><span class="identifier">Rep</span></code>). This is done
452              because the representation might be a class type with behavior which
453              requires some other implementation to return these special values.
454              In that case, the author of that class type should specialize <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a> to return
455              the indicated values.
456            </p>
457<div class="section">
458<div class="titlepage"><div><div><h6 class="title">
459<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values.zero"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.zero" title="Static Member Function zero()">Static
460              Member Function <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code></a>
461</h6></div></div></div>
462<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <span class="identifier">zero</span><span class="special">();</span>
463</pre>
464<p>
465                <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">Rep</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code>. <span class="bold"><strong>Note:</strong></span>
466                <code class="computeroutput"><span class="identifier">Rep</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code>
467                is specified instead of <code class="computeroutput"><span class="identifier">Rep</span><span class="special">()</span></code> since <code class="computeroutput"><span class="identifier">Rep</span><span class="special">()</span></code> may have some other meaning, such
468                as an uninitialized value.
469              </p>
470<p>
471                <span class="bold"><strong>Remarks:</strong></span> The value returned corresponds
472                to the additive identity.
473              </p>
474</div>
475<div class="section">
476<div class="titlepage"><div><div><h6 class="title">
477<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values.max"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.max" title="Static Member Function max()">Static
478              Member Function <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code></a>
479</h6></div></div></div>
480<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <span class="identifier">max</span><span class="special">();</span>
481</pre>
482<p>
483                <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;::</span><span class="identifier">max</span><span class="special">()</span></code>.
484              </p>
485<p>
486                <span class="bold"><strong>Remarks:</strong></span> The value returned compares
487                greater than zero().
488              </p>
489</div>
490<div class="section">
491<div class="titlepage"><div><div><h6 class="title">
492<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values.min"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.min" title="Static Member Function min()">Static
493              Member Function <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code></a>
494</h6></div></div></div>
495<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <span class="identifier">min</span><span class="special">();</span>
496</pre>
497<p>
498                <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;::</span><span class="identifier">lowest</span><span class="special">()</span></code>.
499              </p>
500<p>
501                <span class="bold"><strong>Remarks:</strong></span> The value returned compares
502                less than or equal to <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code>.
503              </p>
504</div>
505</div>
506</div>
507<div class="section">
508<div class="titlepage"><div><div><h5 class="title">
509<a name="chrono.reference.cpp0x.duration_hpp.common_type_spe"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.common_type_spe" title="common_type Specialization"><code class="computeroutput"><span class="identifier">common_type</span></code> Specialization</a>
510</h5></div></div></div>
511<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>
512<span class="keyword">struct</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
513<span class="special">{</span>
514    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><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="emphasis"><em>see bellow</em></span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
515<span class="special">};</span>
516</pre>
517<p>
518            The period of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> indicated by this specialization
519            of <code class="computeroutput"><span class="identifier">common_type</span></code> is the
520            greatest common divisor of <code class="computeroutput"><span class="identifier">Period1</span></code>
521            and <code class="computeroutput"><span class="identifier">Period2</span></code>. This can
522            be computed by forming a <code class="computeroutput"><span class="identifier">ratio</span></code>
523            of the greatest common divisor of <code class="computeroutput"><span class="identifier">Period1</span><span class="special">::</span><span class="identifier">num</span></code>
524            and <code class="computeroutput"><span class="identifier">Period2</span><span class="special">::</span><span class="identifier">num</span></code>, and the least common multiple
525            of <code class="computeroutput"><span class="identifier">Period1</span><span class="special">::</span><span class="identifier">den</span></code> and <code class="computeroutput"><span class="identifier">Period2</span><span class="special">::</span><span class="identifier">den</span></code>.
526          </p>
527<p>
528            <span class="bold"><strong>Note:</strong></span> The typedef type is the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> with the largest tick
529            period possible where both <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> arguments will convert
530            to it without requiring a division operation. The representation of this
531            type is intended to be able to hold any value resulting from this conversion,
532            with the possible exception of round-off error when floating-point <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>s are involved (but
533            not truncation error).
534          </p>
535</div>
536<div class="section">
537<div class="titlepage"><div><div><h5 class="title">
538<a name="chrono.reference.cpp0x.duration_hpp.duration"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;">Class
539          Template <code class="computeroutput"><span class="identifier">duration</span><span class="special">&lt;&gt;</span></code></a>
540</h5></div></div></div>
541<p>
542            A <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> measures time between
543            two points in time (<a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>). A <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> has a representation
544            which holds a count of ticks, and a tick period. The tick period is the
545            amount of time which occurs from one tick to another in units of a second.
546            It is expressed as a rational constant using <code class="computeroutput"><span class="identifier">ratio</span></code>.
547          </p>
548<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>
549
550    <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>
551    <span class="keyword">class</span> <span class="identifier">duration</span> <span class="special">{</span>
552    <span class="keyword">public</span><span class="special">:</span>
553        <span class="keyword">typedef</span> <span class="identifier">Rep</span> <span class="identifier">rep</span><span class="special">;</span>
554        <span class="keyword">typedef</span> <span class="identifier">Period</span> <span class="identifier">period</span><span class="special">;</span>
555    <span class="keyword">private</span><span class="special">:</span>
556        <span class="identifier">rep</span> <span class="identifier">rep_</span><span class="special">;</span> <span class="comment">// exposition only</span>
557    <span class="keyword">public</span><span class="special">:</span>
558        <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_0" title="Constructor duration()"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">();</span>
559        <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep2</span><span class="special">&gt;</span>
560        <span class="keyword">constexpr</span> <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_1" title="Constructor duration(const Rep2&amp;)"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
561
562        <span class="keyword">template</span> <span class="special">&lt;</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>
563        <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_2" title="Constructor duration(const duration&amp;)"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
564
565        <span class="identifier">duration</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;)</span> <span class="special">=</span> <span class="keyword">default</span><span class="special">;</span>
566
567        <span class="keyword">constexpr</span> <span class="identifier">rep</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.count" title="Member Function count() const"><code class="computeroutput"><span class="identifier">count</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
568
569        <span class="keyword">constexpr</span> <span class="identifier">duration</span>  <span class="identifier">__duration__op_plus</span><span class="special">();</span>
570        <span class="keyword">constexpr</span> <span class="identifier">duration</span>  <span class="identifier">__duration__op_minus</span><span class="special">();</span>
571        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_pre_inc" title="Member Function operator++()"><code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code></a><span class="special">();</span>
572        <span class="identifier">duration</span>  <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_post_inc" title="Member Function operator++(int)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code></a><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
573        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_pre_dec" title="Member Function operator--()"><code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code></a><span class="special">();</span>
574        <span class="identifier">duration</span>  <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_post_dec" title="Member Function operator--(int)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code></a><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
575
576        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_plus_eq" title="Member Function operator+=(const duration&amp;)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
577        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_minus_eq" title="Member Function operator-=(const duration&amp;)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
578
579        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mult_eq" title="Member Function operator*=(const rep&amp;)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
580        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_div_eq" title="Member Function operator/=(const rep&amp;)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
581        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq" title="Member Function operator%=(const duration&amp;)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
582        <span class="identifier">duration</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq2" title="Member Function operator%=(const rep&amp;)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
583
584        <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.zero" title="Static Member Function zero()"><code class="computeroutput"><span class="identifier">zero</span></code></a><span class="special">();</span>
585        <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.min" title="Static Member Function min()"><code class="computeroutput"><span class="identifier">min</span></code></a><span class="special">();</span>
586        <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.max" title="Static Member Function max()"><code class="computeroutput"><span class="identifier">max</span></code></a><span class="special">();</span>
587    <span class="special">};</span>
588
589<span class="special">}}</span>
590</pre>
591<p>
592            <code class="computeroutput"><span class="identifier">Rep</span></code> must be an arithmetic
593            type, or a class emulating an arithmetic type, compile diagnostic otherwise.
594            If <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> is instantiated with
595            the type of <code class="computeroutput"><span class="identifier">Rep</span></code> being
596            a <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>, compile diagnostic
597            is issued.
598          </p>
599<p>
600            <code class="computeroutput"><span class="identifier">Period</span></code> must be an instantiation
601            of <code class="computeroutput"><span class="identifier">ratio</span></code>, compile diagnostic
602            otherwise.
603          </p>
604<p>
605            <code class="computeroutput"><span class="identifier">Period</span><span class="special">::</span><span class="identifier">num</span></code> must be positive, compile diagnostic
606            otherwise.
607          </p>
608<p>
609            Examples:
610          </p>
611<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
612<li class="listitem">
613                <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">long</span><span class="special">,</span> <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special">&lt;</span><span class="number">60</span><span class="special">&gt;</span> <span class="special">&gt;</span></code> holds a count of minutes using
614                a long.
615              </li>
616<li class="listitem">
617                <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">long</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">&gt;</span></code> holds a count of milliseconds
618                using a long long.
619              </li>
620<li class="listitem">
621                <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span>
622                <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special">&lt;</span><span class="number">1</span><span class="special">,</span> <span class="number">30</span><span class="special">&gt;</span> <span class="special">&gt;</span></code> holds a count using a double
623                with a tick period of 1/30 second (a tick frequency of 30 Hz).
624              </li>
625</ul></div>
626<p>
627            The following members of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> do not throw an exception
628            unless the indicated operations on the representations throw an exception.
629          </p>
630<div class="section">
631<div class="titlepage"><div><div><h6 class="title">
632<a name="chrono.reference.cpp0x.duration_hpp.duration.duration_c_0"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_0" title="Constructor duration()">Constructor
633            <code class="computeroutput"><span class="identifier">duration</span><span class="special">()</span></code></a>
634</h6></div></div></div>
635<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">duration</span><span class="special">();</span>
636</pre>
637<p>
638              <span class="bold"><strong>Effects:</strong></span> Constructs an object of type
639              <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> initialized from
640              <code class="computeroutput"><span class="identifier">duration_values</span><span class="special">&lt;</span><span class="identifier">rep</span><span class="special">&gt;::</span><span class="identifier">zero</span><span class="special">()</span></code>
641              in C++98 or <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DURATION_DEFAULTS_TO_ZERO</span></code>
642              is defined, otherwise the duration is uninitialized.
643            </p>
644</div>
645<div class="section">
646<div class="titlepage"><div><div><h6 class="title">
647<a name="chrono.reference.cpp0x.duration_hpp.duration.duration_c_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_1" title="Constructor duration(const Rep2&amp;)">Constructor
648            <code class="computeroutput"><span class="identifier">duration</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&amp;)</span></code></a>
649</h6></div></div></div>
650<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep2</span><span class="special">&gt;</span>
651<span class="keyword">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>
652</pre>
653<p>
654              <span class="bold"><strong>Remarks:</strong></span> <code class="computeroutput"><span class="identifier">Rep2</span></code>
655              is implicitly convertible to <code class="computeroutput"><span class="identifier">rep</span></code>,
656              and
657            </p>
658<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
659<li class="listitem">
660                  <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>
661                  is <code class="computeroutput"><span class="keyword">true</span></code>, or
662                </li>
663<li class="listitem">
664                  <code class="computeroutput"><span class="special">!</span><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>
665                  <span class="special">&amp;&amp;</span> <span class="special">!</span><span class="identifier">treat_as_floating_point</span><span class="special">&lt;</span><span class="identifier">Rep2</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
666                </li>
667</ul></div>
668<p>
669              If these constraints are not met, this constructor will not participate
670              in overload resolution. <span class="bold"><strong>Note:</strong></span> This
671              requirement prevents construction of an integral-based <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> with a floating-point
672              representation. Such a construction could easily lead to confusion
673              about the value of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
674            </p>
675<p>
676              <span class="bold"><strong>Example:</strong></span>
677            </p>
678<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">&gt;</span> <span class="identifier">d</span><span class="special">(</span><span class="number">3.5</span><span class="special">);</span>  <span class="comment">// do not compile</span>
679<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">&gt;</span> <span class="identifier">d</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>    <span class="comment">// ok</span>
680</pre>
681<p>
682              <span class="bold"><strong>Effects:</strong></span> Constructs an object of type
683              <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
684            </p>
685<p>
686              <span class="bold"><strong>Post Conditions:</strong></span> <code class="computeroutput"><span class="identifier">count</span><span class="special">()</span> <span class="special">==</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">rep</span><span class="special">&gt;(</span><span class="identifier">r</span><span class="special">)</span></code>.
687            </p>
688</div>
689<div class="section">
690<div class="titlepage"><div><div><h6 class="title">
691<a name="chrono.reference.cpp0x.duration_hpp.duration.duration_c_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_2" title="Constructor duration(const duration&amp;)">Constructor
692            <code class="computeroutput"><span class="identifier">duration</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;)</span></code></a>
693</h6></div></div></div>
694<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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>
695<span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
696</pre>
697<p>
698              <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>,
699              or <code class="computeroutput"><span class="identifier">ratio_divide</span><span class="special">&lt;</span><span class="identifier">Period2</span><span class="special">,</span>
700              <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>
701              <span class="number">1</span></code>, else this constructor will
702              not participate in overload resolution. <span class="bold"><strong>note</strong></span>
703              This requirement prevents implicit truncation error when converting
704              between integral-based <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>s. Such a construction
705              could easily lead to confusion about the value of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
706            </p>
707<p>
708              <span class="bold"><strong>Example:</strong></span>
709            </p>
710<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">&gt;</span> <span class="identifier">ms</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
711<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">micro</span><span class="special">&gt;</span> <span class="identifier">us</span> <span class="special">=</span> <span class="identifier">ms</span><span class="special">;</span>  <span class="comment">// ok</span>
712<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">&gt;</span> <span class="identifier">ms2</span> <span class="special">=</span> <span class="identifier">us</span><span class="special">;</span> <span class="comment">// do not compile</span>
713</pre>
714<p>
715              <span class="bold"><strong>Effects:</strong></span> Constructs an object of type
716              <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>, constructing <code class="computeroutput"><span class="identifier">rep_</span></code> from <code class="computeroutput"><span class="identifier">duration_cast</span><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&gt;(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span></code>.
717            </p>
718</div>
719<div class="section">
720<div class="titlepage"><div><div><h6 class="title">
721<a name="chrono.reference.cpp0x.duration_hpp.duration.count"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.count" title="Member Function count() const">Member
722            Function <code class="computeroutput"><span class="identifier">count</span><span class="special">()</span>
723            <span class="keyword">const</span></code></a>
724</h6></div></div></div>
725<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">rep</span> <span class="identifier">count</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
726</pre>
727<p>
728              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span></code>.
729            </p>
730</div>
731<div class="section">
732<div class="titlepage"><div><div><h6 class="title">
733<a name="chrono.reference.cpp0x.duration_hpp.duration.op_unary_plus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_unary_plus" title="Member Function operator+() const">Member
734            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+()</span>
735            <span class="keyword">const</span></code></a>
736</h6></div></div></div>
737<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">+()</span> <span class="keyword">const</span><span class="special">;</span>
738</pre>
739<p>
740              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
741            </p>
742</div>
743<div class="section">
744<div class="titlepage"><div><div><h6 class="title">
745<a name="chrono.reference.cpp0x.duration_hpp.duration.op_unary_minus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_unary_minus" title="Member Function operator-() const">Member
746            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-()</span>
747            <span class="keyword">const</span></code></a>
748</h6></div></div></div>
749<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">-()</span> <span class="keyword">const</span><span class="special">;</span>
750</pre>
751<p>
752              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(-</span><span class="identifier">rep_</span><span class="special">)</span></code>.
753            </p>
754</div>
755<div class="section">
756<div class="titlepage"><div><div><h6 class="title">
757<a name="chrono.reference.cpp0x.duration_hpp.duration.op_pre_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_pre_inc" title="Member Function operator++()">Member
758            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++()</span></code></a>
759</h6></div></div></div>
760<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++();</span>
761</pre>
762<p>
763              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">++</span><span class="identifier">rep_</span></code>.
764            </p>
765<p>
766              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
767            </p>
768</div>
769<div class="section">
770<div class="titlepage"><div><div><h6 class="title">
771<a name="chrono.reference.cpp0x.duration_hpp.duration.op_post_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_post_inc" title="Member Function operator++(int)">Member
772            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span></code></a>
773</h6></div></div></div>
774<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
775</pre>
776<p>
777              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><span class="identifier">rep_</span><span class="special">++)</span></code>.
778            </p>
779</div>
780<div class="section">
781<div class="titlepage"><div><div><h6 class="title">
782<a name="chrono.reference.cpp0x.duration_hpp.duration.op_pre_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_pre_dec" title="Member Function operator--()">Member
783            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--()</span></code></a>
784</h6></div></div></div>
785<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">--();</span>
786</pre>
787<p>
788              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">--</span><span class="identifier">rep_</span></code>.
789            </p>
790<p>
791              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
792            </p>
793</div>
794<div class="section">
795<div class="titlepage"><div><div><h6 class="title">
796<a name="chrono.reference.cpp0x.duration_hpp.duration.op_post_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_post_dec" title="Member Function operator--(int)">Member
797            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span></code></a>
798</h6></div></div></div>
799<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span>
800</pre>
801<p>
802              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><span class="identifier">rep_</span><span class="special">--)</span></code>.
803            </p>
804</div>
805<div class="section">
806<div class="titlepage"><div><div><h6 class="title">
807<a name="chrono.reference.cpp0x.duration_hpp.duration.op_plus_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_plus_eq" title="Member Function operator+=(const duration&amp;)">Member
808            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;)</span></code></a>
809</h6></div></div></div>
810<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
811</pre>
812<p>
813              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span>
814              <span class="special">+=</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()</span></code>.
815            </p>
816<p>
817              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
818            </p>
819</div>
820<div class="section">
821<div class="titlepage"><div><div><h6 class="title">
822<a name="chrono.reference.cpp0x.duration_hpp.duration.op_minus_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_minus_eq" title="Member Function operator-=(const duration&amp;)">Member
823            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;)</span></code></a>
824</h6></div></div></div>
825<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
826</pre>
827<p>
828              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span>
829              <span class="special">-=</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()</span></code>.
830            </p>
831<p>
832              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
833            </p>
834</div>
835<div class="section">
836<div class="titlepage"><div><div><h6 class="title">
837<a name="chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq" title="Member Function operator%=(const duration&amp;)">Member
838            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;)</span></code></a>
839</h6></div></div></div>
840<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
841</pre>
842<p>
843              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span>
844              <span class="special">%=</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()</span></code>.
845            </p>
846<p>
847              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
848            </p>
849</div>
850<div class="section">
851<div class="titlepage"><div><div><h6 class="title">
852<a name="chrono.reference.cpp0x.duration_hpp.duration.op_mult_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mult_eq" title="Member Function operator*=(const rep&amp;)">Member
853            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;)</span></code></a>
854</h6></div></div></div>
855<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
856</pre>
857<p>
858              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span>
859              <span class="special">*=</span> <span class="identifier">rhs</span></code>.
860            </p>
861<p>
862              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
863            </p>
864</div>
865<div class="section">
866<div class="titlepage"><div><div><h6 class="title">
867<a name="chrono.reference.cpp0x.duration_hpp.duration.op_div_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_div_eq" title="Member Function operator/=(const rep&amp;)">Member
868            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;)</span></code></a>
869</h6></div></div></div>
870<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
871</pre>
872<p>
873              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span>
874              <span class="special">/=</span> <span class="identifier">rhs</span></code>.
875            </p>
876<p>
877              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
878            </p>
879</div>
880<div class="section">
881<div class="titlepage"><div><div><h6 class="title">
882<a name="chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq2" title="Member Function operator%=(const rep&amp;)">Member
883            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;)</span></code></a>
884</h6></div></div></div>
885<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
886</pre>
887<p>
888              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span>
889              <span class="special">%=</span> <span class="identifier">rhs</span></code>.
890            </p>
891<p>
892              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
893            </p>
894</div>
895<div class="section">
896<div class="titlepage"><div><div><h6 class="title">
897<a name="chrono.reference.cpp0x.duration_hpp.duration.zero"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.zero" title="Static Member Function zero()">Static
898            Member Function <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code></a>
899</h6></div></div></div>
900<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">zero</span><span class="special">();</span>
901</pre>
902<p>
903              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a><span class="special">&lt;</span><span class="identifier">rep</span><span class="special">&gt;::</span><span class="identifier">zero</span><span class="special">())</span></code>.
904            </p>
905</div>
906<div class="section">
907<div class="titlepage"><div><div><h6 class="title">
908<a name="chrono.reference.cpp0x.duration_hpp.duration.min"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.min" title="Static Member Function min()">Static
909            Member Function <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code></a>
910</h6></div></div></div>
911<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">min</span><span class="special">();</span>
912</pre>
913<p>
914              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a><span class="special">&lt;</span><span class="identifier">rep</span><span class="special">&gt;::</span><span class="identifier">min</span><span class="special">()).</span></code>
915            </p>
916</div>
917<div class="section">
918<div class="titlepage"><div><div><h6 class="title">
919<a name="chrono.reference.cpp0x.duration_hpp.duration.max"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.max" title="Static Member Function max()">Static
920            Member Function <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code></a>
921</h6></div></div></div>
922<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">max</span><span class="special">();</span>
923</pre>
924<p>
925              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a><span class="special">&lt;</span><span class="identifier">rep</span><span class="special">&gt;::</span><span class="identifier">max</span><span class="special">())</span></code>.
926            </p>
927</div>
928</div>
929<div class="section">
930<div class="titlepage"><div><div><h5 class="title">
931<a name="chrono.reference.cpp0x.duration_hpp.arith"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith" title="duration Non-Member Arithmetic"><code class="computeroutput"><span class="identifier">duration</span></code> Non-Member Arithmetic</a>
932</h5></div></div></div>
933<div class="section">
934<div class="titlepage"><div><div><h6 class="title">
935<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_plus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_plus_1" title="Non-Member Function operator+(duration,duration)">Non-Member
936            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>
937</h6></div></div></div>
938<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>
939<span class="keyword">constexpr</span>
940<span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">&gt;,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
941<span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
942</pre>
943<p>
944              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><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>
945              where <code class="computeroutput"><span class="identifier">CD</span></code> is the type
946              of the return value.
947            </p>
948</div>
949<div class="section">
950<div class="titlepage"><div><div><h6 class="title">
951<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_minus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_minus_1" title="Non-Member Function operator-(duration,duration)">Non-Member
952            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>
953</h6></div></div></div>
954<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>
955<span class="keyword">constexpr</span>
956<span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">&gt;,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
957<span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
958</pre>
959<p>
960              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><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>
961              where <code class="computeroutput"><span class="identifier">CD</span></code> is the type
962              of the return value.
963            </p>
964</div>
965<div class="section">
966<div class="titlepage"><div><div><h6 class="title">
967<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_1" title="Non-Member Function operator*(duration,Rep1)">Non-Member
968            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">Rep1</span><span class="special">)</span></code></a>
969</h6></div></div></div>
970<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>
971<span class="keyword">constexpr</span>
972<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><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>
973<span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
974</pre>
975<p>
976              <span class="bold"><strong>Requires:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code>
977              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
978              of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate
979              in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code>
980              and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly
981              convertible to <code class="computeroutput"><span class="identifier">CR</span></code>.
982            </p>
983<p>
984              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">*</span> <span class="identifier">s</span><span class="special">)</span></code>
985              where <code class="computeroutput"><span class="identifier">CD</span></code> is the type
986              of the return value.
987            </p>
988</div>
989<div class="section">
990<div class="titlepage"><div><div><h6 class="title">
991<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_2" title="Non-Member Function operator*(Rep1,duration)">Non-Member
992            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*(</span><span class="identifier">Rep1</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
993</h6></div></div></div>
994<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>
995<span class="keyword">constexpr</span>
996<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><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>
997<span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">Rep1</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">Rep2</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>
998</pre>
999<p>
1000              <span class="bold"><strong>Requires:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code>
1001              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
1002              of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate
1003              in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code>
1004              and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly
1005              convertible to <code class="computeroutput"><span class="identifier">CR</span></code>.
1006            </p>
1007<p>
1008              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">d</span>
1009              <span class="special">*</span> <span class="identifier">s</span></code>.
1010            </p>
1011</div>
1012<div class="section">
1013<div class="titlepage"><div><div><h6 class="title">
1014<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_1" title="Non-Member Function operator/(duration,Rep2)">Non-Member
1015            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>
1016</h6></div></div></div>
1017<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>
1018<span class="keyword">constexpr</span>
1019<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><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>
1020<span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1021</pre>
1022<p>
1023              <span class="bold"><strong>Requires:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code>
1024              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
1025              of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate
1026              in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code>
1027              and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly
1028              convertible to <code class="computeroutput"><span class="identifier">CR</span></code>,
1029              and <code class="computeroutput"><span class="identifier">Rep2</span></code> is not an
1030              instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
1031            </p>
1032<p>
1033              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">/</span> <span class="identifier">s</span><span class="special">)</span></code>
1034              where <code class="computeroutput"><span class="identifier">CD</span></code> is the type
1035              of the return value.
1036            </p>
1037</div>
1038<div class="section">
1039<div class="titlepage"><div><div><h6 class="title">
1040<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_2" title="Non-Member Function operator/(duration,duration)">Non-Member
1041            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>
1042</h6></div></div></div>
1043<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>
1044<span class="keyword">constexpr</span>
1045<span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><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>
1046<span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1047</pre>
1048<p>
1049              <span class="bold"><strong>Remarks:</strong></span> Let <code class="computeroutput"><span class="identifier">CD</span></code>
1050              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
1051              of the two <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> arguments. <span class="bold"><strong>Returns:</strong></span> 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>.
1052            </p>
1053</div>
1054<div class="section">
1055<div class="titlepage"><div><div><h6 class="title">
1056<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_3"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_3" title="Non-Member Function operator/(Rep1,duration)">Non-Member
1057            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">/(</span><span class="identifier">Rep1</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
1058</h6></div></div></div>
1059<p>
1060              Included only if BOOST_CHRONO_EXTENSIONS is defined.
1061            </p>
1062<p>
1063              This overloading could be used to get the frequency of an event counted
1064              by <code class="computeroutput"><span class="identifier">Rep1</span></code>.
1065            </p>
1066<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">Rep2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span>
1067<span class="keyword">constexpr</span>
1068<span class="keyword">double</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span> <span class="identifier">Rep1</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">Rep2</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>
1069</pre>
1070<p>
1071              <span class="bold"><strong>Remarks:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code>
1072              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
1073              of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate
1074              in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code>
1075              and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly
1076              convertible to <code class="computeroutput"><span class="identifier">CR</span></code>,
1077              and <code class="computeroutput"><span class="identifier">Rep1</span></code> is not an
1078              instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>. Let <code class="computeroutput"><span class="identifier">CD</span></code> represent <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>&lt;CR,Period&gt;.
1079            </p>
1080<p>
1081              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CR</span><span class="special">(</span><span class="identifier">s</span><span class="special">)/</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span></code> where <code class="computeroutput"><span class="identifier">CD</span></code>
1082              is the type of the return value.
1083            </p>
1084</div>
1085<div class="section">
1086<div class="titlepage"><div><div><h6 class="title">
1087<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_1" title="Non-Member Function operator%(duration,Rep2)">Non-Member
1088            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>
1089</h6></div></div></div>
1090<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>
1091<span class="keyword">constexpr</span>
1092<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><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>
1093<span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1094</pre>
1095<p>
1096              <span class="bold"><strong>Remarks:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code>
1097              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
1098              of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate
1099              in overload resolution unless Rep2 must be implicitly convertible to
1100              CR and Rep2 must not be an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
1101            </p>
1102<p>
1103              <span class="bold"><strong>Returns:</strong></span> CD(CD(d).count() % s) where
1104              <code class="computeroutput"><span class="identifier">CD</span></code> is the type of the
1105              return value.
1106            </p>
1107</div>
1108<div class="section">
1109<div class="titlepage"><div><div><h6 class="title">
1110<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_2" title="Non-Member Function operator%(duration,duration)">Non-Member
1111            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>
1112</h6></div></div></div>
1113<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>
1114<span class="keyword">constexpr</span>
1115<span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">&gt;,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1116<span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1117          <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1118</pre>
1119<p>
1120              <span class="bold"><strong>Remarks:</strong></span> This function will not participate
1121              in overload resolution unless
1122            </p>
1123<p>
1124              <span class="bold"><strong>Returns:</strong></span> CD(CD(lhs).count() % CD(rhs).count())
1125              where <code class="computeroutput"><span class="identifier">CD</span></code> is the type
1126              of the return value.
1127            </p>
1128</div>
1129</div>
1130<div class="section">
1131<div class="titlepage"><div><div><h5 class="title">
1132<a name="chrono.reference.cpp0x.duration_hpp.cmp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp" title="duration Non-Member Comparaisons"><code class="computeroutput"><span class="identifier">duration</span></code> Non-Member Comparaisons</a>
1133</h5></div></div></div>
1134<div class="section">
1135<div class="titlepage"><div><div><h6 class="title">
1136<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_eq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_eq_1" title="Non-Member Function operator==(duration,duration)">Non-Member
1137            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>
1138</h6></div></div></div>
1139<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>
1140<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1141                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1142</pre>
1143<p>
1144              <span class="bold"><strong>Returns:</strong></span> Let <code class="computeroutput"><span class="identifier">CD</span></code>
1145              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
1146              of the two <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> arguments.
1147            </p>
1148<p>
1149              <span class="bold"><strong>Returns:</strong></span> 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>
1150            </p>
1151</div>
1152<div class="section">
1153<div class="titlepage"><div><div><h6 class="title">
1154<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_neq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_neq_1" title="Non-Member Function operator!=(duration,duration)">Non-Member
1155            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>
1156</h6></div></div></div>
1157<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>
1158<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1159                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1160</pre>
1161<p>
1162              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special">==</span>
1163              <span class="identifier">rhs</span><span class="special">)</span></code>.
1164            </p>
1165</div>
1166<div class="section">
1167<div class="titlepage"><div><div><h6 class="title">
1168<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_lt_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_lt_1" title="Non-Member Function operator&lt;(duration,duration)">Non-Member
1169            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
1170</h6></div></div></div>
1171<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>
1172<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1173                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1174</pre>
1175<p>
1176              <span class="bold"><strong>Returns:</strong></span> Let <code class="computeroutput"><span class="identifier">CD</span></code>
1177              represent the <code class="computeroutput"><span class="identifier">common_type</span></code>
1178              of the two <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> arguments. Returns
1179              <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>
1180              <span class="special">&lt;</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>
1181            </p>
1182</div>
1183<div class="section">
1184<div class="titlepage"><div><div><h6 class="title">
1185<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_leq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_leq_1" title="Non-Member Function operator&lt;=(duration,duration)">Non-Member
1186            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
1187</h6></div></div></div>
1188<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>
1189<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1190                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1191</pre>
1192<p>
1193              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">rhs</span> <span class="special">&lt;</span>
1194              <span class="identifier">lhs</span><span class="special">)</span></code>.
1195            </p>
1196</div>
1197<div class="section">
1198<div class="titlepage"><div><div><h6 class="title">
1199<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_gt_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_gt_1" title="Non-Member Function operator&gt;(duration,duration)">Non-Member
1200            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
1201</h6></div></div></div>
1202<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>
1203<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1204                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1205</pre>
1206<p>
1207              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rhs</span>
1208              <span class="special">&lt;</span> <span class="identifier">lhs</span></code>.
1209            </p>
1210</div>
1211<div class="section">
1212<div class="titlepage"><div><div><h6 class="title">
1213<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_geq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_geq_1" title="Non-Member Function operator&gt;=(duration,duration)">Non-Member
1214            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
1215</h6></div></div></div>
1216<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>
1217<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1218                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1219</pre>
1220<p>
1221              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special">&lt;</span>
1222              <span class="identifier">rhs</span><span class="special">)</span></code>.
1223            </p>
1224</div>
1225</div>
1226<div class="section">
1227<div class="titlepage"><div><div><h5 class="title">
1228<a name="chrono.reference.cpp0x.duration_hpp.duration_cast"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_cast" title="Non-Member Function duration_cast(duration)">Non-Member
1229          Function <code class="computeroutput"><span class="identifier">duration_cast</span><span class="special">(</span><span class="identifier">duration</span><span class="special">)</span></code></a>
1230</h5></div></div></div>
1231<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">ToDuration</span></code></a><span class="special">,</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>
1232<a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">ToDuration</span></code></a> <span class="identifier">duration_cast</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
1233</pre>
1234<p>
1235            <span class="bold"><strong>Requires:</strong></span> This function will not participate
1236            in overload resolution unless <code class="computeroutput"><span class="identifier">ToDuration</span></code>
1237            is an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
1238          </p>
1239<p>
1240            <span class="bold"><strong>Returns:</strong></span> Forms <code class="computeroutput"><span class="identifier">CF</span></code>
1241            which is a <code class="computeroutput"><span class="identifier">ratio</span></code> resulting
1242            from <code class="computeroutput"><span class="identifier">ratio_divide</span><span class="special">&lt;</span><span class="identifier">Period</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">period</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
1243            Let <code class="computeroutput"><span class="identifier">CR</span></code> be the <code class="computeroutput"><span class="identifier">common_type</span></code> of <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span></code>,
1244            <code class="computeroutput"><span class="identifier">Rep</span></code>, and <code class="computeroutput"><span class="identifier">intmax_t</span></code>.
1245          </p>
1246<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1247<li class="listitem">
1248                If <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span> <span class="special">==</span>
1249                <span class="number">1</span></code> and <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span>
1250                <span class="special">==</span> <span class="number">1</span></code>,
1251                then returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">typename</span>
1252                <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">&gt;(</span><span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()))</span>
1253                </code>
1254              </li>
1255<li class="listitem">
1256                else if <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span> <span class="special">!=</span>
1257                <span class="number">1</span></code> and <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span>
1258                <span class="special">==</span> <span class="number">1</span></code>,
1259                then returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">typename</span>
1260                <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">&gt;(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">CR</span><span class="special">&gt;(</span><span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">())</span>
1261                <span class="special">*</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">CR</span><span class="special">&gt;(</span><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span><span class="special">)))</span></code>
1262              </li>
1263<li class="listitem">
1264                else if <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span> <span class="special">==</span>
1265                <span class="number">1</span></code> and <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span>
1266                <span class="special">!=</span> <span class="number">1</span></code>,
1267                then returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">typename</span>
1268                <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">&gt;(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">CR</span><span class="special">&gt;(</span><span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">())</span>
1269                <span class="special">/</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">CR</span><span class="special">&gt;(</span><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span><span class="special">)))</span></code>
1270              </li>
1271<li class="listitem">
1272                else returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">typename</span>
1273                <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">&gt;(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">CR</span><span class="special">&gt;(</span><span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">())</span>
1274                <span class="special">*</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">CR</span><span class="special">&gt;(</span><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span><span class="special">)</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">CR</span><span class="special">&gt;(</span><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span><span class="special">)))</span></code>
1275              </li>
1276</ul></div>
1277<p>
1278            <span class="bold"><strong>Remarks:</strong></span> This function does not rely
1279            on any implicit conversions. All conversions must be accomplished through
1280            <code class="computeroutput"><span class="keyword">static_cast</span></code>. The implementation
1281            avoids all multiplications or divisions when it is known at compile-time
1282            that it can be avoided because one or more arguments are <code class="computeroutput"><span class="number">1</span></code>. All intermediate computations are carried
1283            out in the widest possible representation and only converted to the destination
1284            representation at the final step.
1285          </p>
1286</div>
1287<div class="section">
1288<div class="titlepage"><div><div><h5 class="title">
1289<a name="chrono.reference.cpp0x.duration_hpp.duration_typedefs"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">duration</span></code> typedefs</a>
1290</h5></div></div></div>
1291<pre class="programlisting"><span class="comment">// convenience typedefs</span>
1292<span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">,</span> <span class="identifier">nano</span><span class="special">&gt;</span> <span class="identifier">nanoseconds</span><span class="special">;</span>    <span class="comment">// at least 64 bits needed</span>
1293<span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">,</span> <span class="identifier">micro</span><span class="special">&gt;</span> <span class="identifier">microseconds</span><span class="special">;</span>  <span class="comment">// at least 55 bits needed</span>
1294<span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">&gt;</span> <span class="identifier">milliseconds</span><span class="special">;</span>  <span class="comment">// at least 45 bits needed</span>
1295<span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">&gt;</span> <span class="identifier">seconds</span><span class="special">;</span>              <span class="comment">// at least 35 bits needed</span>
1296<span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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> <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special">&lt;</span> <span class="number">60</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">minutes</span><span class="special">;</span> <span class="comment">// at least 29 bits needed</span>
1297<span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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> <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special">&lt;</span><span class="number">3600</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">hours</span><span class="special">;</span>  <span class="comment">// at least 23 bits needed</span>
1298</pre>
1299</div>
1300</div>
1301<div class="section">
1302<div class="titlepage"><div><div><h4 class="title">
1303<a name="chrono.reference.cpp0x.clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code>
1304        Requirements</a>
1305</h4></div></div></div>
1306<p>
1307          A clock represents a bundle consisting of a <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>, a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>, and a function <code class="computeroutput"><span class="identifier">now</span><span class="special">()</span></code>
1308          to get the current <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>. A clock must meet
1309          the requirements in the following Table.
1310        </p>
1311<p>
1312          In this table <code class="computeroutput"><span class="identifier">C1</span></code> and <code class="computeroutput"><span class="identifier">C2</span></code> denote <code class="computeroutput"><span class="identifier">Clock</span></code>
1313          types. <code class="computeroutput"><span class="identifier">t1</span></code> and <code class="computeroutput"><span class="identifier">t2</span></code> are values returned from <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>
1314          where the call returning <code class="computeroutput"><span class="identifier">t1</span></code>
1315          happens before the call returning <code class="computeroutput"><span class="identifier">t2</span></code>
1316          and both of these calls occur 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>. (note This means C1 did not wrap around
1317          between t1 and t2.).
1318        </p>
1319<div class="table">
1320<a name="chrono.reference.cpp0x.clock.clock_requirements"></a><p class="title"><b>Table 7.1. Clock Requirements</b></p>
1321<div class="table-contents"><table class="table" summary="Clock Requirements">
1322<colgroup>
1323<col>
1324<col>
1325<col>
1326</colgroup>
1327<thead><tr>
1328<th>
1329                  <p>
1330                    expression
1331                  </p>
1332                </th>
1333<th>
1334                  <p>
1335                    return type
1336                  </p>
1337                </th>
1338<th>
1339                  <p>
1340                    operational semantics
1341                  </p>
1342                </th>
1343</tr></thead>
1344<tbody>
1345<tr>
1346<td>
1347                  <p>
1348                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">rep</span></code>
1349                  </p>
1350                </td>
1351<td>
1352                  <p>
1353                    An arithmetic type or class emulating an arithmetic type.
1354                  </p>
1355                </td>
1356<td>
1357                  <p>
1358                    The representation type of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> and <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>.
1359                  </p>
1360                </td>
1361</tr>
1362<tr>
1363<td>
1364                  <p>
1365                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">period</span></code>
1366                  </p>
1367                </td>
1368<td>
1369                  <p>
1370                    <code class="computeroutput"><span class="identifier">ratio</span></code>
1371                  </p>
1372                </td>
1373<td>
1374                  <p>
1375                    The tick period of the clock in seconds.
1376                  </p>
1377                </td>
1378</tr>
1379<tr>
1380<td>
1381                  <p>
1382                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">duration</span></code>
1383                  </p>
1384                </td>
1385<td>
1386                  <p>
1387                    <code class="computeroutput"><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;</span><span class="identifier">C1</span><span class="special">::</span><span class="identifier">rep</span><span class="special">,</span>
1388                    <span class="identifier">C1</span><span class="special">::</span><span class="identifier">period</span><span class="special">&gt;</span></code>
1389                  </p>
1390                </td>
1391<td>
1392                  <p>
1393                    The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> type of the
1394                    <code class="computeroutput"><span class="identifier">clock</span></code>.
1395                  </p>
1396                </td>
1397</tr>
1398<tr>
1399<td>
1400                  <p>
1401                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1402                  </p>
1403                </td>
1404<td>
1405                  <p>
1406                    <code class="computeroutput"><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">C1</span><span class="special">&gt;</span>
1407                    <span class="keyword">or</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">C2</span><span class="special">,</span> <span class="identifier">C1</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&gt;</span></code>
1408                  </p>
1409                </td>
1410<td>
1411                  <p>
1412                    The <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> type of the
1413                    <code class="computeroutput"><span class="identifier">clock</span></code>. Different
1414                    clocks are permitted to share a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> definition
1415                    if it is valid to compare their time_points by comparing their
1416                    respective <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>s. <code class="computeroutput"><span class="identifier">C1</span></code> and <code class="computeroutput"><span class="identifier">C2</span></code>
1417                    must refer to the same epoch.
1418                  </p>
1419                </td>
1420</tr>
1421<tr>
1422<td>
1423                  <p>
1424                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">is_steady</span></code>
1425                  </p>
1426                </td>
1427<td>
1428                  <p>
1429                    <code class="computeroutput"><span class="keyword">constexpr</span> <span class="keyword">bool</span></code>
1430                  </p>
1431                </td>
1432<td>
1433                  <p>
1434                    <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">t1</span> <span class="special">&lt;=</span>
1435                    <span class="identifier">t2</span></code> is always <code class="computeroutput"><span class="keyword">true</span></code>, else <code class="computeroutput"><span class="keyword">false</span></code>.
1436                    <span class="bold"><strong>Note</strong></span>: A <code class="computeroutput"><span class="identifier">clock</span></code>
1437                    that can be adjusted backwards is not steady
1438                  </p>
1439                </td>
1440</tr>
1441<tr>
1442<td>
1443                  <p>
1444                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>
1445                  </p>
1446                </td>
1447<td>
1448                  <p>
1449                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1450                  </p>
1451                </td>
1452<td>
1453                  <p>
1454                    Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> representing
1455                    the current point in time.
1456                  </p>
1457                </td>
1458</tr>
1459</tbody>
1460</table></div>
1461</div>
1462<br class="table-break"><p>
1463          Models of <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>:
1464        </p>
1465<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1466<li class="listitem">
1467              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>
1468            </li>
1469<li class="listitem">
1470              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a>
1471            </li>
1472<li class="listitem">
1473              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a>
1474            </li>
1475<li class="listitem">
1476              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>
1477            </li>
1478<li class="listitem">
1479              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a>
1480            </li>
1481<li class="listitem">
1482              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>
1483            </li>
1484<li class="listitem">
1485              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock"><code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a>
1486            </li>
1487<li class="listitem">
1488              <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a>
1489            </li>
1490</ul></div>
1491</div>
1492<div class="section">
1493<div class="titlepage"><div><div><h4 class="title">
1494<a name="chrono.reference.cpp0x.trivial_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.trivial_clock" title="TrivialClock Requirements"><code class="computeroutput"><span class="identifier">TrivialClock</span></code> Requirements</a>
1495</h4></div></div></div>
1496<p>
1497          A type <code class="computeroutput"><span class="identifier">TC</span></code> meets the <code class="computeroutput"><span class="identifier">TrivialClock</span></code> requirements if:
1498        </p>
1499<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1500<li class="listitem">
1501              <code class="computeroutput"><span class="identifier">TC</span></code> satisfies the <code class="computeroutput"><span class="identifier">Clock</span></code> requirements,
1502            </li>
1503<li class="listitem">
1504              the types <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">rep</span></code>, <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">duration</span></code>,
1505              and <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">time_point</span></code> satisfy the requirements
1506              of <code class="computeroutput"><span class="identifier">EqualityComparable</span></code>,
1507              <code class="computeroutput"><span class="identifier">LessThanComparable</span></code>,
1508              <code class="computeroutput"><span class="identifier">DefaultConstructible</span></code>,
1509              <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>,
1510              <code class="computeroutput"><span class="identifier">CopyAssignable</span></code>, <code class="computeroutput"><span class="identifier">Destructible</span></code>, and the requirements
1511              of numeric types.
1512            </li>
1513</ul></div>
1514<div class="note"><table border="0" summary="Note">
1515<tr>
1516<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
1517<th align="left">Note</th>
1518</tr>
1519<tr><td align="left" valign="top"><p>
1520            This means, in particular, that operations on these types will not throw
1521            exceptions.
1522          </p></td></tr>
1523</table></div>
1524<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1525<li class="listitem">
1526              lvalues of the types <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">rep</span></code>,
1527              <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">duration</span></code>, and <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">time_point</span></code>
1528              are swappable,
1529            </li>
1530<li class="listitem">
1531              the function <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>
1532              does not throw exceptions and it is thread-safe, and
1533            </li>
1534<li class="listitem">
1535              the type <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">::</span><span class="identifier">clock</span></code> meets the <code class="computeroutput"><span class="identifier">TrivialClock</span></code>
1536              requirements, recursively.
1537            </li>
1538</ul></div>
1539<p>
1540          Models of <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">TrivialClock</span></code></a>:
1541        </p>
1542<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1543<li class="listitem">
1544              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>
1545            </li>
1546<li class="listitem">
1547              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a>
1548            </li>
1549<li class="listitem">
1550              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a>
1551            </li>
1552<li class="listitem">
1553              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>
1554            </li>
1555<li class="listitem">
1556              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a>
1557            </li>
1558<li class="listitem">
1559              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>
1560            </li>
1561<li class="listitem">
1562              <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a>
1563            </li>
1564</ul></div>
1565</div>
1566<div class="section">
1567<div class="titlepage"><div><div><h4 class="title">
1568<a name="chrono.reference.cpp0x.ecclock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.ecclock" title="EcClock Requirements"><code class="computeroutput"><span class="identifier">EcClock</span></code>
1569        Requirements</a>
1570</h4></div></div></div>
1571<p>
1572          A type <code class="computeroutput"><span class="identifier">EcC</span></code> meets the <code class="computeroutput"><span class="identifier">EcClock</span></code> requirements if
1573        </p>
1574<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1575<li class="listitem">
1576              <code class="computeroutput"><span class="identifier">TC</span></code> satisfies the <code class="computeroutput"><span class="identifier">TrivialClock</span> </code> requirements, and
1577            </li>
1578<li class="listitem">
1579              it adds <code class="computeroutput"><span class="identifier">now</span><span class="special">()</span></code>
1580              interfaces allowing to recover internal error codes as described in
1581              the following table.
1582            </li>
1583<li class="listitem">
1584              the added now() function is thread-safe.
1585            </li>
1586</ul></div>
1587<p>
1588          In this table <code class="computeroutput"><span class="identifier">C1</span></code> denotes
1589          a <code class="computeroutput"><span class="identifier">EcClock</span></code> type and <code class="computeroutput"><span class="identifier">ec</span></code> is an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span></code>.
1590        </p>
1591<div class="table">
1592<a name="chrono.reference.cpp0x.ecclock.clock_requirements"></a><p class="title"><b>Table 7.2. Clock Requirements</b></p>
1593<div class="table-contents"><table class="table" summary="Clock Requirements">
1594<colgroup>
1595<col>
1596<col>
1597<col>
1598</colgroup>
1599<thead><tr>
1600<th>
1601                  <p>
1602                    expression
1603                  </p>
1604                </th>
1605<th>
1606                  <p>
1607                    return type
1608                  </p>
1609                </th>
1610<th>
1611                  <p>
1612                    operational semantics
1613                  </p>
1614                </th>
1615</tr></thead>
1616<tbody>
1617<tr>
1618<td>
1619                  <p>
1620                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">(</span><span class="identifier">ec</span><span class="special">)</span></code>
1621                  </p>
1622                </td>
1623<td>
1624                  <p>
1625                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1626                  </p>
1627                </td>
1628<td>
1629                  <p>
1630                    Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> representing
1631                    the current point in time. <code class="computeroutput"><span class="identifier">ec</span></code>
1632                    will stores the error-code in case something was wrong internally.
1633                  </p>
1634                </td>
1635</tr>
1636<tr>
1637<td>
1638                  <p>
1639                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throws</span><span class="special">())</span></code>
1640                  </p>
1641                </td>
1642<td>
1643                  <p>
1644                    <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1645                  </p>
1646                </td>
1647<td>
1648                  <p>
1649                    Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> representing
1650                    the current point in time. Throws a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">system_error</span></code>
1651                    exception in case something was wrong internally.
1652                  </p>
1653                </td>
1654</tr>
1655</tbody>
1656</table></div>
1657</div>
1658<br class="table-break"><p>
1659          Models of <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>:
1660        </p>
1661<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1662<li class="listitem">
1663              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>
1664            </li>
1665<li class="listitem">
1666              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a>
1667            </li>
1668<li class="listitem">
1669              <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a>
1670            </li>
1671<li class="listitem">
1672              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>
1673            </li>
1674<li class="listitem">
1675              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a>
1676            </li>
1677<li class="listitem">
1678              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>
1679            </li>
1680<li class="listitem">
1681              <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock"><code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a>
1682            </li>
1683<li class="listitem">
1684              <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a>
1685            </li>
1686</ul></div>
1687</div>
1688<div class="section">
1689<div class="titlepage"><div><div><h4 class="title">
1690<a name="chrono.reference.cpp0x.time_point_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp" title="Header &lt;boost/chrono/time_point.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_point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
1691</h4></div></div></div>
1692<div class="toc"><dl class="toc">
1693<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.time_point_hpp.common_type_spe2"><code class="computeroutput"><span class="identifier">common_type</span></code> specialization</a></span></dt>
1694<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point">Class
1695          template <code class="computeroutput"><span class="identifier">time_point</span><span class="special">&lt;&gt;</span></code></a></span></dt>
1696<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith"><code class="computeroutput"><span class="identifier">time_point</span></code> non-member arithmetic</a></span></dt>
1697<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp"><code class="computeroutput"><span class="identifier">time_point</span></code> non-member comparisons</a></span></dt>
1698<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point_cast">Non-Member
1699          Function <code class="computeroutput"><span class="identifier">time_point_cast</span><span class="special">(</span><span class="identifier">time_point</span><span class="special">)</span></code></a></span></dt>
1700</dl></div>
1701<p>
1702          This file contains <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> specific classes and
1703          non-member functions.
1704        </p>
1705<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
1706  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
1707
1708    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a> <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&gt;</span>
1709    <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">;</span>
1710
1711  <span class="special">}</span>
1712  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1713  <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.common_type_spe" title="common_type Specialization"><code class="computeroutput"><span class="identifier">common_type</span></code></a><span class="special">&lt;</span><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;,</span>
1714                     <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;</span> <span class="special">&gt;;</span>
1715
1716  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
1717
1718    <span class="comment">// time_point arithmetic</span>
1719    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><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>
1720    <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">Duration1</span><span class="special">,</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="special">&gt;</span>
1721    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_1" title="Non-Member Function operator+(time_point,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1722              <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>
1723
1724    <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> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1725    <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</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">Duration2</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;</span>
1726    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_2" title="Non-Member Function operator+(duration,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code></a><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>
1727              <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1728
1729    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><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>
1730    <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">Duration1</span><span class="special">,</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="special">&gt;</span>
1731    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_1" title="Non-Member Function operator-(time_point,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1732              <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>
1733
1734    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1735    <span class="keyword">constexpr</span> <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">Duration1</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;::</span><span class="identifier">type</span>
1736    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_2" title="Non-Member Function operator-(time_point,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1737              <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1738
1739    <span class="comment">// time_point comparisons</span>
1740    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1741    <span class="keyword">constexpr</span> <span class="keyword">bool</span>
1742    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_eq" title="Non-Member Function operator==(time_point,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1743               <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1744    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1745    <span class="keyword">constexpr</span> <span class="keyword">bool</span>
1746    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_neq" title="Non-Member Function operator!=(time_point,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1747               <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1748    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1749    <span class="keyword">constexpr</span> <span class="keyword">bool</span>
1750    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_lt" title="Non-Member Function operator&lt;(time_point,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1751              <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1752    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1753    <span class="keyword">constexpr</span> <span class="keyword">bool</span>
1754    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_leq" title="Non-Member Function operator&lt;=(time_point,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1755               <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1756    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1757    <span class="keyword">constexpr</span> <span class="keyword">bool</span>
1758    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_gt" title="Non-Member Function operator&gt;(time_point,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1759              <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1760    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1761    <span class="keyword">constexpr</span> <span class="keyword">bool</span>
1762    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_geq" title="Non-Member Function operator&gt;=(time_point,time_point)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
1763               <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
1764
1765    <span class="comment">// time_point_cast</span>
1766    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">ToDuration</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
1767    <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">ToDuration</span><span class="special">&gt;</span>
1768    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point_cast" title="Non-Member Function time_point_cast(time_point)"><code class="computeroutput"><span class="identifier">time_point_cast</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;&amp;</span> <span class="identifier">t</span><span class="special">);</span>
1769
1770  <span class="special">}</span>
1771<span class="special">}</span>
1772</pre>
1773<div class="section">
1774<div class="titlepage"><div><div><h5 class="title">
1775<a name="chrono.reference.cpp0x.time_point_hpp.common_type_spe2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.common_type_spe2" title="common_type specialization"><code class="computeroutput"><span class="identifier">common_type</span></code> specialization</a>
1776</h5></div></div></div>
1777<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1778<span class="keyword">struct</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;,</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span> <span class="special">&gt;</span>
1779<span class="special">{</span>
1780    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><span class="identifier">Duration1</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
1781<span class="special">};</span>
1782</pre>
1783<p>
1784            The <code class="computeroutput"><span class="identifier">common_type</span></code> of two
1785            <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>s is a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> with the same <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
1786            (both have the same <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>), and the <code class="computeroutput"><span class="identifier">common_type</span></code> of the two <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>s.
1787          </p>
1788</div>
1789<div class="section">
1790<div class="titlepage"><div><div><h5 class="title">
1791<a name="chrono.reference.cpp0x.time_point_hpp.time_point"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;">Class
1792          template <code class="computeroutput"><span class="identifier">time_point</span><span class="special">&lt;&gt;</span></code></a>
1793</h5></div></div></div>
1794<p>
1795            A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> represents a point
1796            in time with respect to a specific clock.
1797          </p>
1798<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
1799<span class="keyword">class</span> <span class="identifier">time_point</span> <span class="special">{</span>
1800<span class="keyword">public</span><span class="special">:</span>
1801    <span class="keyword">typedef</span> <span class="identifier">Clock</span>                     <span class="identifier">clock</span><span class="special">;</span>
1802    <span class="keyword">typedef</span> <span class="identifier">Duration</span>                  <span class="identifier">duration</span><span class="special">;</span>
1803    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span>    <span class="identifier">rep</span><span class="special">;</span>
1804    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span>
1805<span class="keyword">private</span><span class="special">:</span>
1806    <span class="identifier">duration</span> <span class="identifier">d_</span><span class="special">;</span> <span class="comment">// exposition only</span>
1807<span class="keyword">public</span><span class="special">:</span>
1808    <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_1" title="Constructor time_point()"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">();</span>
1809
1810    <span class="keyword">constexpr</span> <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_2" title="Constructor time_point(const duration&amp;)"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
1811
1812    <span class="comment">// conversions</span>
1813    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1814    <span class="keyword">constexpr</span>
1815    <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_3" title="Copy Constructor time_point(const time_point&amp;)"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">clock</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">t</span><span class="special">);</span>
1816
1817    <span class="comment">// observer</span>
1818    <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_since_epoch" title="Member Function time_since_epoch() const"><code class="computeroutput"><span class="identifier">time_since_epoch</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
1819
1820    <span class="comment">// arithmetic</span>
1821
1822    <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_CHRONO_EXTENSIONS</span>
1823    <span class="keyword">constexpr</span> <span class="identifier">time_point</span>  <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_plus" title="Member Function operator+() const"><code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code></a><span class="special">();</span>
1824    <span class="keyword">constexpr</span> <span class="identifier">time_point</span>  <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_minus" title="Member Function operator-() const"><code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code></a><span class="special">();</span>
1825    <span class="identifier">time_point</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_inc" title="Member Function operator++()"><code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code></a><span class="special">();</span>
1826    <span class="identifier">time_point</span>  <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_post_inc" title="Member Function operator++(int)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code></a><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
1827    <span class="identifier">time_point</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_dec" title="Member Function operator--()"><code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code></a><span class="special">();</span>
1828    <span class="identifier">time_point</span>  <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_post_dec" title="Member Function operator--(int)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code></a><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
1829
1830    <span class="identifier">time_point</span><span class="special">&amp;</span> <span class="identifier">__time_point__op_plus_eq_1</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
1831    <span class="identifier">time_point</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_1" title="Member Function operator-=(const rep&amp;)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
1832    <span class="preprocessor">#endif</span>
1833
1834    <span class="identifier">time_point</span><span class="special">&amp;</span> <span class="identifier">__time_point__op_plus_eq_2</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
1835    <span class="identifier">time_point</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_2" title="Member Function operator-="><code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
1836
1837    <span class="comment">// special values</span>
1838
1839    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.min" title="Static Member Function min"><code class="computeroutput"><span class="identifier">min</span></code></a><span class="special">();</span>
1840    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.max" title="Static Member Function max"><code class="computeroutput"><span class="identifier">max</span></code></a><span class="special">();</span>
1841<span class="special">};</span>
1842</pre>
1843<p>
1844            Clock must meet the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> requirements.
1845          </p>
1846<p>
1847            Duration must be an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>, compile diagnostic
1848            otherwise.
1849          </p>
1850<div class="section">
1851<div class="titlepage"><div><div><h6 class="title">
1852<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_1" title="Constructor time_point()">Constructor
1853            <code class="computeroutput"><span class="identifier">time_point</span><span class="special">()</span></code></a>
1854</h6></div></div></div>
1855<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special">();</span>
1856</pre>
1857<p>
1858              <span class="bold"><strong>Effects:</strong></span> Constructs an object of
1859              <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>, initializing
1860              <code class="computeroutput"><span class="identifier">d_</span></code> with <code class="computeroutput"><span class="identifier">duration</span><span class="special">::</span><span class="identifier">zero</span><span class="special">()</span></code>.
1861              This <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> represents the
1862              epoch.
1863            </p>
1864</div>
1865<div class="section">
1866<div class="titlepage"><div><div><h6 class="title">
1867<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_2" title="Constructor time_point(const duration&amp;)">Constructor
1868            <code class="computeroutput"><span class="identifier">time_point</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;)</span></code></a>
1869</h6></div></div></div>
1870<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
1871</pre>
1872<p>
1873              <span class="bold"><strong>Effects:</strong></span> Constructs an object of
1874              <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>, initializing
1875              <code class="computeroutput"><span class="identifier">d_</span></code> with <code class="computeroutput"><span class="identifier">d</span></code>. This <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> represents the
1876              epoch <code class="computeroutput"><span class="special">+</span> <span class="identifier">d</span></code>.
1877            </p>
1878</div>
1879<div class="section">
1880<div class="titlepage"><div><div><h6 class="title">
1881<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_3"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_3" title="Copy Constructor time_point(const time_point&amp;)">Copy
1882            Constructor <code class="computeroutput"><span class="identifier">time_point</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&amp;)</span></code></a>
1883</h6></div></div></div>
1884<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
1885<span class="keyword">constexpr</span>
1886<span class="identifier">time_point</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><span class="identifier">clock</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">t</span><span class="special">);</span>
1887</pre>
1888<p>
1889              <span class="bold"><strong>Requires:</strong></span> This function will not participate
1890              in overload resolution unless <code class="computeroutput"><span class="identifier">Duration2</span></code>
1891              is implicitly convertible to <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
1892            </p>
1893<p>
1894              <span class="bold"><strong>Effects:</strong></span> Constructs an object of
1895              <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>, initializing
1896              <code class="computeroutput"><span class="identifier">d_</span></code> with <code class="computeroutput"><span class="identifier">t</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span></code>.
1897            </p>
1898</div>
1899<div class="section">
1900<div class="titlepage"><div><div><h6 class="title">
1901<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_since_epoch"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_since_epoch" title="Member Function time_since_epoch() const">Member
1902            Function <code class="computeroutput"><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="keyword">const</span></code></a>
1903</h6></div></div></div>
1904<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">duration</span> <span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
1905</pre>
1906<p>
1907              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">d_</span></code>.
1908            </p>
1909</div>
1910<div class="section">
1911<div class="titlepage"><div><div><h6 class="title">
1912<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_plus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_plus" title="Member Function operator+() const">Member
1913            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+()</span>
1914            <span class="keyword">const</span></code></a>
1915</h6></div></div></div>
1916<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">+()</span> <span class="keyword">const</span><span class="special">;</span>
1917</pre>
1918<p>
1919              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
1920            </p>
1921</div>
1922<div class="section">
1923<div class="titlepage"><div><div><h6 class="title">
1924<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_minus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_minus" title="Member Function operator-() const">Member
1925            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-()</span>
1926            <span class="keyword">const</span></code></a>
1927</h6></div></div></div>
1928<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">-()</span> <span class="keyword">const</span><span class="special">;</span>
1929</pre>
1930<p>
1931              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(-</span><span class="identifier">d_</span><span class="special">)</span></code>.
1932            </p>
1933</div>
1934<div class="section">
1935<div class="titlepage"><div><div><h6 class="title">
1936<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_inc" title="Member Function operator++()">Member
1937            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++()</span></code></a>
1938</h6></div></div></div>
1939<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++();</span>
1940</pre>
1941<p>
1942              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">++</span><span class="identifier">d_</span></code>.
1943            </p>
1944<p>
1945              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
1946            </p>
1947</div>
1948<div class="section">
1949<div class="titlepage"><div><div><h6 class="title">
1950<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_post_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_post_inc" title="Member Function operator++(int)">Member
1951            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span></code></a>
1952</h6></div></div></div>
1953<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
1954</pre>
1955<p>
1956              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(</span><span class="identifier">d_</span><span class="special">++)</span></code>.
1957            </p>
1958</div>
1959<div class="section">
1960<div class="titlepage"><div><div><h6 class="title">
1961<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_dec" title="Member Function operator--()">Member
1962            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--()</span></code></a>
1963</h6></div></div></div>
1964<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">--();</span>
1965</pre>
1966<p>
1967              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">--</span><span class="identifier">d_</span></code>.
1968            </p>
1969<p>
1970              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
1971            </p>
1972</div>
1973<div class="section">
1974<div class="titlepage"><div><div><h6 class="title">
1975<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_post_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_post_dec" title="Member Function operator--(int)">Member
1976            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span></code></a>
1977</h6></div></div></div>
1978<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span>
1979</pre>
1980<p>
1981              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(</span><span class="identifier">d_</span><span class="special">--)</span></code>.
1982            </p>
1983</div>
1984<div class="section">
1985<div class="titlepage"><div><div><h6 class="title">
1986<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_1" title="Member Function operator+=(const rep&amp;)">Member
1987            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;)</span></code></a>
1988</h6></div></div></div>
1989<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">r</span><span class="special">);</span>
1990</pre>
1991<p>
1992              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span>
1993              <span class="special">+=</span> <span class="identifier">duration</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>.
1994            </p>
1995<p>
1996              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
1997            </p>
1998</div>
1999<div class="section">
2000<div class="titlepage"><div><div><h6 class="title">
2001<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_1" title="Member Function operator-=(const rep&amp;)">Member
2002            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;)</span></code></a>
2003</h6></div></div></div>
2004<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&amp;</span> <span class="identifier">r</span><span class="special">);</span>
2005</pre>
2006<p>
2007              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span>
2008              <span class="special">-=</span> <span class="identifier">duration</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>
2009            </p>
2010<p>
2011              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
2012            </p>
2013</div>
2014<div class="section">
2015<div class="titlepage"><div><div><h6 class="title">
2016<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_2" title="Member Function operator+=">Member
2017            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code></a>
2018</h6></div></div></div>
2019<pre class="programlisting"><span class="identifier">time_point</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
2020</pre>
2021<p>
2022              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span>
2023              <span class="special">+=</span> <span class="identifier">d</span></code>.
2024            </p>
2025<p>
2026              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
2027            </p>
2028</div>
2029<div class="section">
2030<div class="titlepage"><div><div><h6 class="title">
2031<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_2" title="Member Function operator-=">Member
2032            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code></a>
2033</h6></div></div></div>
2034<pre class="programlisting"><span class="identifier">time_point</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
2035</pre>
2036<p>
2037              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span>
2038              <span class="special">-=</span> <span class="identifier">d</span></code>
2039            </p>
2040<p>
2041              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
2042            </p>
2043</div>
2044<div class="section">
2045<div class="titlepage"><div><div><h6 class="title">
2046<a name="chrono.reference.cpp0x.time_point_hpp.time_point.min"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.min" title="Static Member Function min">Static
2047            Member Function <code class="computeroutput"><span class="identifier">min</span></code></a>
2048</h6></div></div></div>
2049<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <span class="identifier">min</span><span class="special">();</span>
2050</pre>
2051<p>
2052              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">time_point</span><span class="special">(</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">min</span><span class="special">())</span></code>.
2053            </p>
2054</div>
2055<div class="section">
2056<div class="titlepage"><div><div><h6 class="title">
2057<a name="chrono.reference.cpp0x.time_point_hpp.time_point.max"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.max" title="Static Member Function max">Static
2058            Member Function <code class="computeroutput"><span class="identifier">max</span></code></a>
2059</h6></div></div></div>
2060<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <span class="identifier">max</span><span class="special">();</span>
2061</pre>
2062<p>
2063              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">time_point</span><span class="special">(</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">max</span><span class="special">())</span></code>.
2064            </p>
2065</div>
2066</div>
2067<div class="section">
2068<div class="titlepage"><div><div><h5 class="title">
2069<a name="chrono.reference.cpp0x.time_point_hpp.arith"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith" title="time_point non-member arithmetic"><code class="computeroutput"><span class="identifier">time_point</span></code> non-member arithmetic</a>
2070</h5></div></div></div>
2071<div class="section">
2072<div class="titlepage"><div><div><h6 class="title">
2073<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_1" title="Non-Member Function operator+(time_point,duration)">Non-Member
2074            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
2075</h6></div></div></div>
2076<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><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>
2077<span class="keyword">constexpr</span>
2078<a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><span class="identifier">Duration1</span><span class="special">,</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="special">&gt;</span>
2079<span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2080          <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>
2081</pre>
2082<p>
2083              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CT</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">rhs</span><span class="special">)</span></code>
2084              where <code class="computeroutput"><span class="identifier">CT</span></code> is the type
2085              of the return value.
2086            </p>
2087</div>
2088<div class="section">
2089<div class="titlepage"><div><div><h6 class="title">
2090<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_2" title="Non-Member Function operator+(duration,time_point)">Non-Member
2091            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">time_point</span><span class="special">)</span></code></a>
2092</h6></div></div></div>
2093<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> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2094<span class="keyword">constexpr</span>
2095<a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><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> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;</span>
2096<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>
2097          <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2098</pre>
2099<p>
2100              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rhs</span>
2101              <span class="special">+</span> <span class="identifier">lhs</span></code>.
2102            </p>
2103</div>
2104<div class="section">
2105<div class="titlepage"><div><div><h6 class="title">
2106<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_1" title="Non-Member Function operator-(time_point,duration)">Non-Member
2107            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a>
2108</h6></div></div></div>
2109<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><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>
2110<span class="keyword">constexpr</span>
2111<a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><span class="identifier">Duration1</span><span class="special">,</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="special">&gt;</span>
2112<span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2113          <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>
2114</pre>
2115<p>
2116              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">lhs</span>
2117              <span class="special">+</span> <span class="special">(-</span><span class="identifier">rhs</span><span class="special">)</span></code>.
2118            </p>
2119</div>
2120<div class="section">
2121<div class="titlepage"><div><div><h6 class="title">
2122<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_2" title="Non-Member Function operator-(time_point,time_point)">Non-Member
2123            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2124</h6></div></div></div>
2125<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2126<span class="keyword">constexpr</span>
2127<span class="keyword">typename</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special">&lt;</span><span class="identifier">Duration1</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;::</span><span class="identifier">type</span>
2128<span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2129          <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2130</pre>
2131<p>
2132              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">rhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span></code>.
2133            </p>
2134</div>
2135</div>
2136<div class="section">
2137<div class="titlepage"><div><div><h5 class="title">
2138<a name="chrono.reference.cpp0x.time_point_hpp.cmp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp" title="time_point non-member comparisons"><code class="computeroutput"><span class="identifier">time_point</span></code> non-member comparisons</a>
2139</h5></div></div></div>
2140<div class="section">
2141<div class="titlepage"><div><div><h6 class="title">
2142<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_eq" title="Non-Member Function operator==(time_point,time_point)">Non-Member
2143            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">==(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2144</h6></div></div></div>
2145<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2146<span class="keyword">constexpr</span>
2147<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2148                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2149</pre>
2150<p>
2151              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="special">==</span> <span class="identifier">rhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span></code>.
2152            </p>
2153</div>
2154<div class="section">
2155<div class="titlepage"><div><div><h6 class="title">
2156<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_neq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_neq" title="Non-Member Function operator!=(time_point,time_point)">Non-Member
2157            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2158</h6></div></div></div>
2159<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2160<span class="keyword">constexpr</span>
2161<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2162                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2163</pre>
2164<p>
2165              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special">==</span>
2166              <span class="identifier">rhs</span><span class="special">)</span></code>.
2167            </p>
2168</div>
2169<div class="section">
2170<div class="titlepage"><div><div><h6 class="title">
2171<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_lt"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_lt" title="Non-Member Function operator&lt;(time_point,time_point)">Non-Member
2172            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2173</h6></div></div></div>
2174<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2175<span class="keyword">constexpr</span>
2176<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2177                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2178</pre>
2179<p>
2180              <span class="bold"><strong>Returns:</strong></span> lhs.time_since_epoch() &lt;
2181              rhs.time_since_epoch().
2182            </p>
2183</div>
2184<div class="section">
2185<div class="titlepage"><div><div><h6 class="title">
2186<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_leq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_leq" title="Non-Member Function operator&lt;=(time_point,time_point)">Non-Member
2187            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2188</h6></div></div></div>
2189<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2190<span class="keyword">constexpr</span>
2191<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2192                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2193</pre>
2194<p>
2195              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">rhs</span> <span class="special">&lt;</span>
2196              <span class="identifier">lhs</span><span class="special">)</span></code>.
2197            </p>
2198</div>
2199<div class="section">
2200<div class="titlepage"><div><div><h6 class="title">
2201<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_gt"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_gt" title="Non-Member Function operator&gt;(time_point,time_point)">Non-Member
2202            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2203</h6></div></div></div>
2204<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2205<span class="keyword">constexpr</span>
2206<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2207               <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2208</pre>
2209<p>
2210              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rhs</span>
2211              <span class="special">&lt;</span> <span class="identifier">lhs</span></code>.
2212            </p>
2213</div>
2214<div class="section">
2215<div class="titlepage"><div><div><h6 class="title">
2216<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_geq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_geq" title="Non-Member Function operator&gt;=(time_point,time_point)">Non-Member
2217            Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2218</h6></div></div></div>
2219<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;</span>
2220<span class="keyword">constexpr</span>
2221<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
2222                <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
2223</pre>
2224<p>
2225              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special">&lt;</span>
2226              <span class="identifier">rhs</span><span class="special">)</span></code>.
2227            </p>
2228</div>
2229</div>
2230<div class="section">
2231<div class="titlepage"><div><div><h5 class="title">
2232<a name="chrono.reference.cpp0x.time_point_hpp.time_point_cast"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point_cast" title="Non-Member Function time_point_cast(time_point)">Non-Member
2233          Function <code class="computeroutput"><span class="identifier">time_point_cast</span><span class="special">(</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2234</h5></div></div></div>
2235<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">ToDuration</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
2236<span class="keyword">constexpr</span>
2237<a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="identifier">ToDuration</span><span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point_cast" title="Non-Member Function time_point_cast(time_point)"><code class="computeroutput"><span class="identifier">time_point_cast</span></code></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">t</span><span class="special">);</span>
2238</pre>
2239<p>
2240            <span class="bold"><strong>Requires:</strong></span> This function will not participate
2241            in overload resolution unless <code class="computeroutput"><span class="identifier">ToDuration</span></code>
2242            is an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
2243          </p>
2244<p>
2245            <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="identifier">ToDuration</span><span class="special">&gt;(</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_cast" title="Non-Member Function duration_cast(duration)"><code class="computeroutput"><span class="identifier">duration_cast</span></code></a><span class="special">&lt;</span><span class="identifier">ToDuration</span><span class="special">&gt;(</span><span class="identifier">t</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()))</span></code>.
2246          </p>
2247</div>
2248</div>
2249<div class="section">
2250<div class="titlepage"><div><div><h4 class="title">
2251<a name="chrono.reference.cpp0x.system_clocks_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp" title="Header &lt;boost/chrono/system_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">system_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2252</h4></div></div></div>
2253<div class="toc"><dl class="toc">
2254<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock">Class
2255          <code class="computeroutput"><span class="identifier">system_clock</span></code></a></span></dt>
2256<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.BOOST_CHRONO_HAS_CLOCK_STEADY">Macro
2257          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span></code></a></span></dt>
2258<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock">Class
2259          <code class="computeroutput"><span class="identifier">steady_clock</span></code></a></span></dt>
2260<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock">Class
2261          <code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a></span></dt>
2262<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.clock_string_system_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">&gt;</span></code>
2263          Specialization</a></span></dt>
2264<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.clock_string_steady_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">steady_clock</span><span class="special">&gt;</span></code>
2265          Specialization</a></span></dt>
2266</dl></div>
2267<p>
2268          This file contains the standard clock classes. The types defined in this
2269          section satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">TrivialClock</span></code></a> requirements
2270        </p>
2271<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2272  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
2273
2274    <span class="comment">// Clocks</span>
2275    <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a><span class="special">;</span>
2276    <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a><span class="special">;</span>
2277    <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a><span class="special">;</span>
2278
2279    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2280    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;;</span>
2281    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2282    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">steady_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;;</span>
2283
2284  <span class="special">}</span>
2285<span class="special">}</span>
2286</pre>
2287<div class="section">
2288<div class="titlepage"><div><div><h5 class="title">
2289<a name="chrono.reference.cpp0x.system_clocks_hpp.system_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock">Class
2290          <code class="computeroutput"><span class="identifier">system_clock</span></code></a>
2291</h5></div></div></div>
2292<p>
2293            The <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> class provides
2294            a means of obtaining the current wall-clock time from the system-wide
2295            real-time clock. The current time can be obtained by calling <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>.
2296            Instances of <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">time_point</span></code>
2297            can be converted to and from time_t with the <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">to_time_t</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">from_time_t</span><span class="special">()</span></code> functions. If system clock is not steady,
2298            a subsequent call to <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> may return an earlier time than a previous
2299            call (e.g. if the operating system clock is manually adjusted, or synchronized
2300            with an external clock).
2301          </p>
2302<p>
2303            The current implementation of <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> is related an epoch
2304            (midnight UTC of January 1, 1970), but this is not in the contract. You
2305            need to use the static function static
2306          </p>
2307<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span> <span class="identifier">to_time_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">);</span>
2308</pre>
2309<p>
2310            which returns a <code class="computeroutput"><span class="identifier">time_t</span></code>
2311            type that is based on midnight UTC of January 1, 1970.
2312          </p>
2313<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">system_clock</span> <span class="special">{</span>
2314<span class="keyword">public</span><span class="special">:</span>
2315    <span class="keyword">typedef</span> <span class="emphasis"><em>see bellow</em></span>          <span class="identifier">duration</span><span class="special">;</span>
2316    <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>
2317    <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>
2318    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">&gt;</span>     <span class="identifier">time_point</span><span class="special">;</span>
2319    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span>            <span class="keyword">false</span><span class="special">;</span>
2320
2321
2322    <span class="keyword">static</span> <span class="identifier">time_point</span>  <span class="identifier">now</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span>
2323    <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>
2324
2325    <span class="comment">// Map to C API</span>
2326    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span> <span class="identifier">to_time_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
2327    <span class="keyword">static</span> <span class="identifier">time_point</span>  <span class="identifier">from_time_t</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
2328<span class="special">};</span>
2329</pre>
2330<p>
2331            <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
2332            requirements:
2333          </p>
2334<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2335<li class="listitem">
2336                <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">min</span><span class="special">()</span>
2337                <span class="special">&lt;</span> <span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">zero</span><span class="special">()</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
2338              </li>
2339<li class="listitem">
2340                The nested <code class="computeroutput"><span class="identifier">duration</span></code>
2341                typedef has a resolution that depends on the one provided by the
2342                platform.
2343              </li>
2344</ul></div>
2345<div class="section">
2346<div class="titlepage"><div><div><h6 class="title">
2347<a name="chrono.reference.cpp0x.system_clocks_hpp.system_clock.to_time_t"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock.to_time_t" title="Static Member Function to_time_t(time_point)">Static
2348            Member Function <code class="computeroutput"><span class="identifier">to_time_t</span><span class="special">(</span><span class="identifier">time_point</span><span class="special">)</span></code></a>
2349</h6></div></div></div>
2350<pre class="programlisting"><span class="identifier">time_t</span> <span class="identifier">to_time_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
2351</pre>
2352<p>
2353              <span class="bold"><strong>Returns:</strong></span> A <code class="computeroutput"><span class="identifier">time_t</span></code>
2354              such that the <code class="computeroutput"><span class="identifier">time_t</span></code>
2355              and <code class="computeroutput"><span class="identifier">t</span></code> represent the
2356              same point in time, truncated to the coarser of the precisions among
2357              <code class="computeroutput"><span class="identifier">time_t</span></code> and <code class="computeroutput"><span class="identifier">time_point</span></code>.
2358            </p>
2359</div>
2360<div class="section">
2361<div class="titlepage"><div><div><h6 class="title">
2362<a name="chrono.reference.cpp0x.system_clocks_hpp.system_clock.from_time_t"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock.from_time_t" title="Static Member Function from_time_t(time_t)">Static
2363            Member Function <code class="computeroutput"><span class="identifier">from_time_t</span><span class="special">(</span><span class="identifier">time_t</span><span class="special">)</span></code></a>
2364</h6></div></div></div>
2365<pre class="programlisting"><span class="identifier">time_point</span> <span class="identifier">from_time_t</span><span class="special">(</span><span class="identifier">time_t</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
2366</pre>
2367<p>
2368              <span class="bold"><strong>Returns:</strong></span> A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> such that the
2369              <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> and <code class="computeroutput"><span class="identifier">t</span></code> represent the same point in time,
2370              truncated to the coarser of the precisions among <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> and <code class="computeroutput"><span class="identifier">time_t</span></code>.
2371            </p>
2372</div>
2373</div>
2374<div class="section">
2375<div class="titlepage"><div><div><h5 class="title">
2376<a name="chrono.reference.cpp0x.system_clocks_hpp.BOOST_CHRONO_HAS_CLOCK_STEADY"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.BOOST_CHRONO_HAS_CLOCK_STEADY" title="Macro BOOST_CHRONO_HAS_CLOCK_STEADY">Macro
2377          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span></code></a>
2378</h5></div></div></div>
2379<p>
2380            Defined if the platform support steady clocks.
2381          </p>
2382</div>
2383<div class="section">
2384<div class="titlepage"><div><div><h5 class="title">
2385<a name="chrono.reference.cpp0x.system_clocks_hpp.steady_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock">Class
2386          <code class="computeroutput"><span class="identifier">steady_clock</span></code></a>
2387</h5></div></div></div>
2388<p>
2389            <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
2390            requirements.
2391          </p>
2392<p>
2393            <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> class provides
2394            access to the system-wide steady clock. The current time can be obtained
2395            by calling <code class="computeroutput"><span class="identifier">steady_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. There is no fixed relationship between
2396            values returned by <code class="computeroutput"><span class="identifier">steady_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> and wall-clock time.
2397          </p>
2398<pre class="programlisting"><span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_HAS_CLOCK_STEADY</span>
2399    <span class="keyword">class</span> <span class="identifier">steady_clock</span> <span class="special">{</span>
2400    <span class="keyword">public</span><span class="special">:</span>
2401        <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a>                          <span class="identifier">duration</span><span class="special">;</span>
2402        <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>
2403        <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>
2404        <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><span class="identifier">steady_clock</span><span class="special">&gt;</span>     <span class="identifier">time_point</span><span class="special">;</span>
2405        <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span>            <span class="keyword">true</span><span class="special">;</span>
2406
2407        <span class="keyword">static</span> <span class="identifier">time_point</span>  <span class="identifier">now</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span>
2408        <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>
2409    <span class="special">};</span>
2410<span class="preprocessor">#endif</span>
2411</pre>
2412</div>
2413<div class="section">
2414<div class="titlepage"><div><div><h5 class="title">
2415<a name="chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock">Class
2416          <code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a>
2417</h5></div></div></div>
2418<p>
2419            <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a> satisfy
2420            the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
2421            requirements.
2422          </p>
2423<pre class="programlisting"><span class="preprocessor">#ifdef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.BOOST_CHRONO_HAS_CLOCK_STEADY" title="Macro BOOST_CHRONO_HAS_CLOCK_STEADY"><code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span></code></a>
2424  <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> <span class="identifier">high_resolution_clock</span><span class="special">;</span>  <span class="comment">// as permitted by [time.clock.hires]</span>
2425<span class="preprocessor">#else</span>
2426  <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> <span class="identifier">high_resolution_clock</span><span class="special">;</span>  <span class="comment">// as permitted by [time.clock.hires]</span>
2427<span class="preprocessor">#endif</span>
2428</pre>
2429</div>
2430<div class="section">
2431<div class="titlepage"><div><div><h5 class="title">
2432<a name="chrono.reference.cpp0x.system_clocks_hpp.clock_string_system_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.clock_string_system_clock" title="clock_string&lt;system_clock&gt; Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">&gt;</span></code>
2433          Specialization</a>
2434</h5></div></div></div>
2435<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2436<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2437<span class="special">{</span>
2438    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
2439    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
2440<span class="special">};</span>
2441</pre>
2442<p>
2443            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
2444            returns "system_clock".
2445          </p>
2446<p>
2447            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
2448            returns " since Jan 1, 1970"
2449          </p>
2450</div>
2451<div class="section">
2452<div class="titlepage"><div><div><h5 class="title">
2453<a name="chrono.reference.cpp0x.system_clocks_hpp.clock_string_steady_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.clock_string_steady_clock" title="clock_string&lt;steady_clock&gt; Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">steady_clock</span><span class="special">&gt;</span></code>
2454          Specialization</a>
2455</h5></div></div></div>
2456<pre class="programlisting"><span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span>
2457
2458<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2459<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">steady_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2460<span class="special">{</span>
2461    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
2462    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
2463<span class="special">};</span>
2464<span class="preprocessor">#endif</span>
2465</pre>
2466<p>
2467            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
2468            returns "steady_clock".
2469          </p>
2470<p>
2471            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
2472            returns " since boot"
2473          </p>
2474</div>
2475</div>
2476<div class="section">
2477<div class="titlepage"><div><div><h4 class="title">
2478<a name="chrono.reference.cpp0x.clock_strings_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.clock_strings_hpp" title="Header &lt;boost/chrono/clock_strings.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">clock_strings</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2479</h4></div></div></div>
2480<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.clock_strings_hpp.clock_string">Template
2481          Class <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;</span></code></a></span></dt></dl></div>
2482<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2483  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
2484
2485    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2486    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">;</span>
2487
2488  <span class="special">}</span>
2489<span class="special">}</span>
2490</pre>
2491<div class="section">
2492<div class="titlepage"><div><div><h5 class="title">
2493<a name="chrono.reference.cpp0x.clock_strings_hpp.clock_string"></a><a class="link" href="reference.html#chrono.reference.cpp0x.clock_strings_hpp.clock_string" title="Template Class clock_string&lt;&gt;">Template
2494          Class <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;</span></code></a>
2495</h5></div></div></div>
2496<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2497<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">;</span>
2498</pre>
2499<p>
2500            This template must be specialized for specific clocks. The specialization
2501            must define the following functions
2502          </p>
2503<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
2504<span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
2505</pre>
2506<p>
2507            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
2508            return the clock name, which usually corresponds to the class name.
2509          </p>
2510<p>
2511            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
2512            return the textual format of the clock epoch.
2513          </p>
2514</div>
2515</div>
2516<div class="section">
2517<div class="titlepage"><div><div><h4 class="title">
2518<a name="chrono.reference.cpp0x.chrono_typeof_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_typeof_hpp" title="Header &lt;boost/chrono/typeof/boost/chrono/chrono.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">typeof</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2519</h4></div></div></div>
2520<p>
2521          Register <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><code class="computeroutput"><span class="special">&lt;&gt;</span></code>
2522          and <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><code class="computeroutput"><span class="special">&lt;&gt;</span></code>
2523          class templates to <span class="bold"><strong>Boost.Typeof</strong></span>.
2524        </p>
2525</div>
2526</div>
2527<div class="section">
2528<div class="titlepage"><div><div><h3 class="title">
2529<a name="chrono.reference.io_v1"></a><a class="link" href="reference.html#chrono.reference.io_v1" title="Chrono I/O V1">Chrono I/O V1</a>
2530</h3></div></div></div>
2531<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io_v1.chrono_io_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">chrono_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt></dl></div>
2532<div class="section">
2533<div class="titlepage"><div><div><h4 class="title">
2534<a name="chrono.reference.io_v1.chrono_io_hpp"></a><a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp" title="Header &lt;boost/chrono/chrono_io.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">chrono_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2535</h4></div></div></div>
2536<div class="toc"><dl class="toc">
2537<dt><span class="section"><a href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct">Template
2538          Class <code class="computeroutput"><span class="identifier">duration_punct</span><span class="special">&lt;&gt;</span></code></a></span></dt>
2539<dt><span class="section"><a href="reference.html#chrono.reference.io_v1.chrono_io_hpp.manipulators">I/O
2540          Manipulators</a></span></dt>
2541<dt><span class="section"><a href="reference.html#chrono.reference.io_v1.chrono_io_hpp.streams">I/O
2542          Streams Operations</a></span></dt>
2543</dl></div>
2544<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2545<span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
2546
2547    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2548    <span class="keyword">class</span> <span class="identifier">duration_punct</span><span class="special">;</span>
2549
2550    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
2551        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2552        <span class="identifier">duration_short</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">);</span>
2553
2554    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
2555        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2556        <span class="identifier">duration_long</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">);</span>
2557
2558    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
2559        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2560        <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</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>
2561
2562    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
2563        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2564        <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</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>
2565
2566    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
2567        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2568        <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
2569               <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
2570
2571    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
2572        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2573        <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
2574               <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
2575
2576<span class="special">}</span>
2577<span class="special">}</span>
2578</pre>
2579<div class="section">
2580<div class="titlepage"><div><div><h5 class="title">
2581<a name="chrono.reference.io_v1.chrono_io_hpp.duration_punct"></a><a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;">Template
2582          Class <code class="computeroutput"><span class="identifier">duration_punct</span><span class="special">&lt;&gt;</span></code></a>
2583</h5></div></div></div>
2584<p>
2585            The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> unit names can be customized
2586            through the facet: <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a>. <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> unit names come in
2587            two varieties: long and short. The default constructed <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> provides names
2588            in the long format. These names are English descriptions. Other languages
2589            are supported by constructing a <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> with the proper
2590            spellings for "hours", "minutes" and "seconds",
2591            and their abbreviations (for the short format).
2592          </p>
2593<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2594<span class="keyword">class</span> <span class="identifier">duration_punct</span>
2595    <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">facet</span>
2596<span class="special">{</span>
2597<span class="keyword">public</span><span class="special">:</span>
2598    <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span>
2599    <span class="keyword">enum</span> <span class="special">{</span><span class="identifier">use_long</span><span class="special">,</span> <span class="identifier">use_short</span><span class="special">};</span>
2600
2601    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span>
2602
2603    <span class="keyword">explicit</span> <span class="identifier">duration_punct</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">use</span> <span class="special">=</span> <span class="identifier">use_long</span><span class="special">);</span>
2604
2605    <span class="identifier">duration_punct</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">use</span><span class="special">,</span>
2606        <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">long_seconds</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">long_minutes</span><span class="special">,</span>
2607        <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">long_hours</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">short_seconds</span><span class="special">,</span>
2608        <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">short_minutes</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">short_hours</span><span class="special">);</span>
2609
2610    <span class="identifier">duration_punct</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">use</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">duration_punct</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">);</span>
2611
2612    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span> <span class="identifier">string_type</span> <span class="identifier">short_name</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
2613    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span> <span class="identifier">string_type</span> <span class="identifier">long_name</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
2614    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Period</span><span class="special">&gt;</span> <span class="identifier">string_type</span> <span class="identifier">name</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
2615
2616    <span class="keyword">bool</span> <span class="identifier">is_short_name</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
2617    <span class="keyword">bool</span> <span class="identifier">is_long_name</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
2618<span class="special">};</span>
2619</pre>
2620</div>
2621<div class="section">
2622<div class="titlepage"><div><div><h5 class="title">
2623<a name="chrono.reference.io_v1.chrono_io_hpp.manipulators"></a><a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.manipulators" title="I/O Manipulators">I/O
2624          Manipulators</a>
2625</h5></div></div></div>
2626<p>
2627            The short or long format can be easily chosen by streaming a <code class="computeroutput"><span class="identifier">duration_short</span></code> or <code class="computeroutput"><span class="identifier">duration_long</span></code>
2628            manipulator respectively.
2629          </p>
2630<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
2631    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2632    <span class="identifier">duration_short</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">);</span>
2633</pre>
2634<p>
2635            <span class="bold"><strong>Effects:</strong></span> Set the <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet to stream
2636            <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>s and <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>s as abbreviations.
2637          </p>
2638<p>
2639            <span class="bold"><strong>Returns:</strong></span> the output stream
2640          </p>
2641<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
2642    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2643    <span class="identifier">duration_long</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">);</span>
2644</pre>
2645<p>
2646            <span class="bold"><strong>Effects:</strong></span> Set the <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet to stream
2647            durations and time_points as long text.
2648          </p>
2649<p>
2650            <span class="bold"><strong>Returns:</strong></span> the output stream
2651          </p>
2652</div>
2653<div class="section">
2654<div class="titlepage"><div><div><h5 class="title">
2655<a name="chrono.reference.io_v1.chrono_io_hpp.streams"></a><a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.streams" title="I/O Streams Operations">I/O
2656          Streams Operations</a>
2657</h5></div></div></div>
2658<p>
2659            Any <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> can be streamed out
2660            to a <code class="computeroutput"><span class="identifier">basic_ostream</span></code>. The
2661            run-time value of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> is formatted according
2662            to the rules and current format settings for <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><code class="computeroutput"><span class="special">::</span><span class="identifier">rep</span></code>. This is followed by a single space
2663            and then the compile-time unit name of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>. This unit name is
2664            built on the string returned from <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special">&lt;&gt;</span></code> and the data used to construct
2665            the <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> which was inserted
2666            into the stream's locale. If a <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> has not been
2667            inserted into the stream's locale, a default constructed <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> will be added
2668            to the stream's locale.
2669          </p>
2670<p>
2671            A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> is formatted by outputting
2672            its internal <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> followed by a string
2673            that describes the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><code class="computeroutput"><span class="special">::</span><span class="identifier">clock</span></code> epoch. This string will vary
2674            for each distinct clock, and for each implementation of the supplied
2675            clocks.
2676          </p>
2677<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
2678    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2679    <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</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>
2680</pre>
2681<p>
2682            <span class="bold"><strong>Effects:</strong></span> outputs the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> as an abbreviated or
2683            long text format depending on the state of the <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet.
2684          </p>
2685<p>
2686            <span class="bold"><strong>Returns:</strong></span> the output stream
2687          </p>
2688<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
2689    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2690    <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</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>
2691</pre>
2692<p>
2693            <span class="bold"><strong>Effects:</strong></span> reads a <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> from the input stream.
2694            If a format error is found, the input stream state will be set to <code class="computeroutput"><span class="identifier">failbit</span></code>.
2695          </p>
2696<p>
2697            <span class="bold"><strong>Returns:</strong></span> the input stream
2698          </p>
2699<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
2700    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2701    <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
2702           <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
2703</pre>
2704<p>
2705            <span class="bold"><strong>Effects:</strong></span> outputs the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> as an abbreviated
2706            or long text format depending on the state of the <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet.
2707          </p>
2708<p>
2709            <span class="bold"><strong>Returns:</strong></span> the output stream
2710          </p>
2711<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
2712    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
2713    <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
2714           <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
2715</pre>
2716<p>
2717            <span class="bold"><strong>Effects:</strong></span> reads a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> from the input stream.
2718            If a format error is found, the input stream state will be set to <code class="computeroutput"><span class="identifier">failbit</span></code>.
2719          </p>
2720<p>
2721            <span class="bold"><strong>Returns:</strong></span> the input stream
2722          </p>
2723</div>
2724</div>
2725</div>
2726<div class="section">
2727<div class="titlepage"><div><div><h3 class="title">
2728<a name="chrono.reference.io"></a><a class="link" href="reference.html#chrono.reference.io" title="Chrono I/O V2">Chrono I/O V2</a>
2729</h3></div></div></div>
2730<div class="toc"><dl class="toc">
2731<dt><span class="section"><a href="reference.html#chrono.reference.io.chrono_io_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">chrono_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2732<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_style_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">io</span><span class="special">/</span><span class="identifier">duration_style</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2733<dt><span class="section"><a href="reference.html#chrono.reference.io.timezone_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">io</span><span class="special">/</span><span class="identifier">timezone</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2734<dt><span class="section"><a href="reference.html#chrono.reference.io.ios_state_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">io</span><span class="special">/</span><span class="identifier">ios_base_state</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2735<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_get_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">io</span><span class="special">/</span><span class="identifier">duration_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2736<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_put_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">io</span><span class="special">/</span><span class="identifier">duration_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2737<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_units_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">io</span><span class="special">/</span><span class="identifier">duration_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2738<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_io_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">io</span><span class="special">/</span><span class="identifier">duration_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2739<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_get_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">io</span><span class="special">/</span><span class="identifier">time_point_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2740<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_put_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">io</span><span class="special">/</span><span class="identifier">time_point_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2741<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_units_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">io</span><span class="special">/</span><span class="identifier">time_point_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2742<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_io_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">io</span><span class="special">/</span><span class="identifier">time_point_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
2743</dl></div>
2744<div class="section">
2745<div class="titlepage"><div><div><h4 class="title">
2746<a name="chrono.reference.io.chrono_io_hpp"></a><a class="link" href="reference.html#chrono.reference.io.chrono_io_hpp" title="Header &lt;boost/chrono/chrono_io.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">chrono_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2747</h4></div></div></div>
2748<p>
2749          This file includes the i/o of the two major components, duration and time_point.
2750        </p>
2751<pre class="programlisting"><span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">duration_style</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2752<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">timezone</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2753<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">ios_base_state</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2754<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">duration_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2755<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">duration_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2756<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">duration_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2757<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">duration_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2758<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">time_point_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2759<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">time_point_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2760<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">time_point_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2761<span class="preprocessor">#include</span> <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">io</span><span class="special">/</span><span class="identifier">time_point_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
2762</pre>
2763</div>
2764<div class="section">
2765<div class="titlepage"><div><div><h4 class="title">
2766<a name="chrono.reference.io.duration_style_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp" title="Header &lt;boost/chrono/io/duration_style.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">io</span><span class="special">/</span><span class="identifier">duration_style</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2767</h4></div></div></div>
2768<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io.duration_style_hpp.duration_style">Scoped
2769          enum <code class="computeroutput"><span class="identifier">duration_style</span></code></a></span></dt></dl></div>
2770<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2771  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
2772
2773    <span class="comment">// typedefs</span>
2774    <span class="keyword">enum</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <span class="special">{</span>
2775      <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">prefix</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">symbol</span></code></a>
2776    <span class="special">};</span>
2777  <span class="special">}</span>
2778<span class="special">}</span>
2779</pre>
2780<div class="section">
2781<div class="titlepage"><div><div><h5 class="title">
2782<a name="chrono.reference.io.duration_style_hpp.duration_style"></a><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style">Scoped
2783          enum <code class="computeroutput"><span class="identifier">duration_style</span></code></a>
2784</h5></div></div></div>
2785<pre class="programlisting"><span class="keyword">enum</span> <span class="keyword">class</span> <span class="identifier">duration_style</span> <span class="special">{</span>
2786  <span class="identifier">prefix</span><span class="special">,</span> <span class="identifier">symbol</span>
2787<span class="special">};</span>
2788</pre>
2789<p>
2790            <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> unit names come in
2791            two varieties: prefix and symbol.
2792          </p>
2793</div>
2794</div>
2795<div class="section">
2796<div class="titlepage"><div><div><h4 class="title">
2797<a name="chrono.reference.io.timezone_hpp"></a><a class="link" href="reference.html#chrono.reference.io.timezone_hpp" title="Header &lt;boost/chrono/io/timezone.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">io</span><span class="special">/</span><span class="identifier">timezone</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2798</h4></div></div></div>
2799<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io.timezone_hpp.timezone">Scoped
2800          enum <code class="computeroutput"><span class="identifier">timezone</span></code></a></span></dt></dl></div>
2801<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2802  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
2803
2804    <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a>
2805    <span class="special">{</span>
2806      <span class="keyword">enum</span> <span class="identifier">type</span> <span class="special">{</span>
2807        <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">utc</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">local</span></code></a>
2808      <span class="special">};</span>
2809    <span class="special">};</span>
2810  <span class="special">}</span>
2811<span class="special">}</span>
2812</pre>
2813<div class="section">
2814<div class="titlepage"><div><div><h5 class="title">
2815<a name="chrono.reference.io.timezone_hpp.timezone"></a><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone">Scoped
2816          enum <code class="computeroutput"><span class="identifier">timezone</span></code></a>
2817</h5></div></div></div>
2818<pre class="programlisting"><span class="keyword">enum</span> <span class="keyword">class</span> <span class="identifier">timezone</span> <span class="special">{</span>
2819  <span class="identifier">utc</span><span class="special">,</span> <span class="identifier">local</span>
2820<span class="special">};</span>
2821</pre>
2822</div>
2823</div>
2824<div class="section">
2825<div class="titlepage"><div><div><h4 class="title">
2826<a name="chrono.reference.io.ios_state_hpp"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp" title="Header &lt;boost/chrono/io/ios_base_state.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">io</span><span class="special">/</span><span class="identifier">ios_base_state</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
2827</h4></div></div></div>
2828<div class="toc"><dl class="toc">
2829<dt><span class="section"><a href="reference.html#chrono.reference.io.ios_state_hpp.sag">Setter and
2830          getters</a></span></dt>
2831<dt><span class="section"><a href="reference.html#chrono.reference.io.ios_state_hpp.ioss">I/O State
2832          Savers</a></span></dt>
2833</dl></div>
2834<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2835  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
2836
2837    <span class="comment">// setters and getters</span>
2838    <span class="identifier">duration_style</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_duration_style" title="Non Member Function get_duration_style(std::ios_base &amp;)"><code class="computeroutput"><span class="identifier">get_duration_style</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
2839    <span class="keyword">void</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_duration_style</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">);</span>
2840
2841    <span class="identifier">timezone</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_timezone" title="Non Member Function get_timezone(std::ios_base&amp;)"><code class="computeroutput"><span class="identifier">get_timezone</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
2842    <span class="keyword">void</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_timezone" title="Non Member Function set_timezone(std::ios_base&amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_timezone</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">);</span>
2843
2844    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2845    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_time_fmt" title="Non Member Function get_time_fmt(std::ios_base &amp;)"><code class="computeroutput"><span class="identifier">get_time_fmt</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
2846    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2847    <span class="keyword">void</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_time_fmt" title="Non Member Function set_time_fmt(std::ios_base&amp;, std::basic_string&lt;CharT&gt; const&amp;)"><code class="computeroutput"><span class="identifier">set_time_fmt</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">);</span>
2848
2849    <span class="comment">// i/o state savers</span>
2850    <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a><span class="special">;</span>
2851    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Traits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
2852    <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a><span class="special">;</span>
2853    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Traits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
2854    <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a><span class="special">;</span>
2855  <span class="special">}</span>
2856<span class="special">}</span>
2857</pre>
2858<div class="section">
2859<div class="titlepage"><div><div><h5 class="title">
2860<a name="chrono.reference.io.ios_state_hpp.sag"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag" title="Setter and getters">Setter and
2861          getters</a>
2862</h5></div></div></div>
2863<div class="section">
2864<div class="titlepage"><div><div><h6 class="title">
2865<a name="chrono.reference.io.ios_state_hpp.sag.get_duration_style"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_duration_style" title="Non Member Function get_duration_style(std::ios_base &amp;)">Non
2866            Member Function <code class="computeroutput"><span class="identifier">get_duration_style</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span>
2867            <span class="special">&amp;)</span></code></a>
2868</h6></div></div></div>
2869<pre class="programlisting"><span class="identifier">duration_style</span> <span class="identifier">get_duration_style</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
2870</pre>
2871<p>
2872              <span class="bold"><strong>Returns:</strong></span> The stream's <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> attribute associated
2873              to <code class="computeroutput"><span class="identifier">ios</span></code>.
2874            </p>
2875</div>
2876<div class="section">
2877<div class="titlepage"><div><div><h6 class="title">
2878<a name="chrono.reference.io.ios_state_hpp.sag.set_duration_style"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &amp;,duration_style)">Non
2879            Member Function <code class="computeroutput"><span class="identifier">set_duration_style</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span>
2880            <span class="special">&amp;,</span><span class="identifier">duration_style</span><span class="special">)</span></code></a>
2881</h6></div></div></div>
2882<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">set_duration_style</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">);</span>
2883</pre>
2884<p>
2885              <span class="bold"><strong>Effects:</strong></span> Set the stream's <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> attribute associated
2886              to <code class="computeroutput"><span class="identifier">ios</span></code> with the <code class="computeroutput"><span class="identifier">style</span></code> parameter.
2887            </p>
2888</div>
2889<div class="section">
2890<div class="titlepage"><div><div><h6 class="title">
2891<a name="chrono.reference.io.ios_state_hpp.sag.get_timezone"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_timezone" title="Non Member Function get_timezone(std::ios_base&amp;)">Non
2892            Member Function <code class="computeroutput"><span class="identifier">get_timezone</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;)</span></code></a>
2893</h6></div></div></div>
2894<pre class="programlisting"><span class="identifier">timezone</span> <span class="identifier">get_timezone</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
2895</pre>
2896<p>
2897              <span class="bold"><strong>Returns:</strong></span> The stream's <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> attribute associated
2898              to <code class="computeroutput"><span class="identifier">ios</span></code>.
2899            </p>
2900</div>
2901<div class="section">
2902<div class="titlepage"><div><div><h6 class="title">
2903<a name="chrono.reference.io.ios_state_hpp.sag.set_timezone"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_timezone" title="Non Member Function set_timezone(std::ios_base&amp;,duration_style)">Non
2904            Member Function <code class="computeroutput"><span class="identifier">set_timezone</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">duration_style</span><span class="special">)</span></code></a>
2905</h6></div></div></div>
2906<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">set_timezone</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">);</span>
2907</pre>
2908<p>
2909              <span class="bold"><strong>Effects:</strong></span> Set the stream's <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> attribute associated
2910              to <code class="computeroutput"><span class="identifier">ios</span></code> with the <code class="computeroutput"><span class="identifier">tz</span></code> parameter.
2911            </p>
2912</div>
2913<div class="section">
2914<div class="titlepage"><div><div><h6 class="title">
2915<a name="chrono.reference.io.ios_state_hpp.sag.get_time_fmt"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_time_fmt" title="Non Member Function get_time_fmt(std::ios_base &amp;)">Non
2916            Member Function <code class="computeroutput"><span class="identifier">get_time_fmt</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span>
2917            <span class="special">&amp;)</span></code></a>
2918</h6></div></div></div>
2919<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2920<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">get_time_fmt</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
2921</pre>
2922<p>
2923              <span class="bold"><strong>Returns:</strong></span> The stream's time format
2924              attribute associated to <code class="computeroutput"><span class="identifier">ios</span></code>.
2925            </p>
2926</div>
2927<div class="section">
2928<div class="titlepage"><div><div><h6 class="title">
2929<a name="chrono.reference.io.ios_state_hpp.sag.set_time_fmt"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_time_fmt" title="Non Member Function set_time_fmt(std::ios_base&amp;, std::basic_string&lt;CharT&gt; const&amp;)">Non
2930            Member Function <code class="computeroutput"><span class="identifier">set_time_fmt</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;)</span></code></a>
2931</h6></div></div></div>
2932<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
2933<span class="keyword">void</span> <span class="identifier">set_time_fmt</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">);</span>
2934</pre>
2935<p>
2936              <span class="bold"><strong>Effects:</strong></span> Set the stream's time format
2937              attribute associated to <code class="computeroutput"><span class="identifier">ios</span></code>
2938              with the <code class="computeroutput"><span class="identifier">fmt</span></code> parameter.
2939            </p>
2940<p>
2941              The format is composed of zero or more directives. Each directive is
2942              composed of one of the following:
2943            </p>
2944<pre class="programlisting"><span class="special">*</span> <span class="identifier">one</span> <span class="keyword">or</span> <span class="identifier">more</span> <span class="identifier">white</span><span class="special">-</span><span class="identifier">space</span> <span class="identifier">characters</span> <span class="special">(</span><span class="identifier">as</span> <span class="identifier">specified</span> <span class="identifier">by</span> <span class="identifier">isspace</span><span class="special">());</span>
2945<span class="special">*</span> <span class="identifier">an</span> <span class="identifier">ordinary</span> <span class="identifier">character</span> <span class="special">(</span><span class="identifier">neither</span> <span class="char">'%'</span> <span class="identifier">nor</span> <span class="identifier">a</span> <span class="identifier">white</span><span class="special">-</span><span class="identifier">space</span> <span class="identifier">character</span><span class="special">);</span>
2946<span class="special">*</span> <span class="keyword">or</span> <span class="identifier">a</span> <span class="identifier">conversion</span> <span class="identifier">specification</span><span class="special">.</span>
2947</pre>
2948<p>
2949              Each conversion specification is composed of a '%' character followed
2950              by a conversion character which specifies the replacement required.
2951              The application shall ensure that there is white-space or other non-alphanumeric
2952              characters between any two conversion specifications. The following
2953              conversion specifications are supported:
2954            </p>
2955<div class="table">
2956<a name="chrono.reference.io.ios_state_hpp.sag.set_time_fmt.format_tags"></a><p class="title"><b>Table 7.3. Format tags</b></p>
2957<div class="table-contents"><table class="table" summary="Format tags">
2958<colgroup>
2959<col>
2960<col>
2961<col>
2962</colgroup>
2963<thead><tr>
2964<th>
2965                      <p>
2966                        Format Specifier
2967                      </p>
2968                    </th>
2969<th>
2970                      <p>
2971                        Description
2972                      </p>
2973                    </th>
2974<th>
2975                      <p>
2976                        Example
2977                      </p>
2978                    </th>
2979</tr></thead>
2980<tbody>
2981<tr>
2982<td>
2983                      <p>
2984                        <code class="computeroutput"><span class="special">%%</span></code>
2985                      </p>
2986                    </td>
2987<td>
2988                      <p>
2989                        Replaced by <code class="computeroutput"><span class="special">%</span></code>.
2990                      </p>
2991                    </td>
2992<td>
2993                      <p>
2994                        .
2995                      </p>
2996                    </td>
2997</tr>
2998<tr>
2999<td>
3000                      <p>
3001                        <code class="computeroutput"><span class="special">%</span><span class="identifier">a</span>
3002                        <span class="special">%</span><span class="identifier">A</span></code>
3003                      </p>
3004                    </td>
3005<td>
3006                      <p>
3007                        The day of the week, using the locale's weekday names; either
3008                        the abbreviated or full name may be specified.
3009                      </p>
3010                    </td>
3011<td>
3012                      <p>
3013                        "Monday".
3014                      </p>
3015                    </td>
3016</tr>
3017<tr>
3018<td>
3019                      <p>
3020                        <code class="computeroutput"><span class="special">%</span><span class="identifier">b</span>
3021                        <span class="special">%</span><span class="identifier">B</span>
3022                        <span class="special">%</span><span class="identifier">h</span></code>
3023                      </p>
3024                    </td>
3025<td>
3026                      <p>
3027                        The month, using the locale's month names; either the abbreviated
3028                        or full name may be specified.
3029                      </p>
3030                    </td>
3031<td>
3032                      <p>
3033                        "February".
3034                      </p>
3035                    </td>
3036</tr>
3037<tr>
3038<td>
3039                      <p>
3040                        <code class="computeroutput"><span class="special">%</span><span class="identifier">c</span></code>
3041                      </p>
3042                    </td>
3043<td>
3044                      <p>
3045                        Not supported.
3046                      </p>
3047                    </td>
3048<td>
3049                      <p>
3050                        .
3051                      </p>
3052                    </td>
3053</tr>
3054<tr>
3055<td>
3056                      <p>
3057                        <code class="computeroutput"><span class="special">%</span><span class="identifier">d</span>
3058                        <span class="special">%</span><span class="identifier">e</span></code>
3059                      </p>
3060                    </td>
3061<td>
3062                      <p>
3063                        The day of the month <code class="computeroutput"><span class="special">[</span><span class="number">01</span><span class="special">,</span><span class="number">31</span><span class="special">]</span></code>;
3064                        leading zeros are permitted but not required..
3065                      </p>
3066                    </td>
3067<td>
3068                      <p>
3069                        .
3070                      </p>
3071                    </td>
3072</tr>
3073<tr>
3074<td>
3075                      <p>
3076                        <code class="computeroutput"><span class="special">%</span><span class="identifier">D</span></code>
3077                      </p>
3078                    </td>
3079<td>
3080                      <p>
3081                        The date as <code class="computeroutput"><span class="special">%</span><span class="identifier">m</span><span class="special">/%</span><span class="identifier">d</span><span class="special">/%</span><span class="identifier">y</span></code>.
3082                      </p>
3083                    </td>
3084<td>
3085                      <p>
3086                        .
3087                      </p>
3088                    </td>
3089</tr>
3090<tr>
3091<td>
3092                      <p>
3093                        <code class="computeroutput"><span class="special">%</span><span class="identifier">F</span></code>
3094                      </p>
3095                    </td>
3096<td>
3097                      <p>
3098                        The date as <code class="computeroutput"><span class="special">%</span><span class="identifier">Y</span><span class="special">/%</span><span class="identifier">m</span><span class="special">/%</span><span class="identifier">d</span></code>.
3099                      </p>
3100                    </td>
3101<td>
3102                      <p>
3103                        .
3104                      </p>
3105                    </td>
3106</tr>
3107<tr>
3108<td>
3109                      <p>
3110                        <code class="computeroutput"><span class="special">%</span><span class="identifier">H</span></code>
3111                      </p>
3112                    </td>
3113<td>
3114                      <p>
3115                        The hour (24-hour clock) <code class="computeroutput"><span class="special">[</span><span class="number">00</span><span class="special">,</span><span class="number">23</span><span class="special">]</span></code>;
3116                        leading zeros are permitted but not required.
3117                      </p>
3118                    </td>
3119<td>
3120                      <p>
3121                        .
3122                      </p>
3123                    </td>
3124</tr>
3125<tr>
3126<td>
3127                      <p>
3128                        <code class="computeroutput"><span class="special">%</span><span class="identifier">I</span></code>
3129                      </p>
3130                    </td>
3131<td>
3132                      <p>
3133                        The hour (12-hour clock) <code class="computeroutput"><span class="special">[</span><span class="number">01</span><span class="special">,</span><span class="number">12</span><span class="special">]</span></code>;
3134                        leading zeros are permitted but not required.
3135                      </p>
3136                    </td>
3137<td>
3138                      <p>
3139                        .
3140                      </p>
3141                    </td>
3142</tr>
3143<tr>
3144<td>
3145                      <p>
3146                        <code class="computeroutput"><span class="special">%</span><span class="identifier">j</span></code>
3147                      </p>
3148                    </td>
3149<td>
3150                      <p>
3151                        The day number of the year <code class="computeroutput"><span class="special">[</span><span class="number">001</span><span class="special">,</span><span class="number">366</span><span class="special">]</span></code>;
3152                        leading zeros are permitted but not required.
3153                      </p>
3154                    </td>
3155<td>
3156                      <p>
3157                        "060" =&gt; Feb-29.
3158                      </p>
3159                    </td>
3160</tr>
3161<tr>
3162<td>
3163                      <p>
3164                        <code class="computeroutput"><span class="special">%</span><span class="identifier">m</span></code>
3165                      </p>
3166                    </td>
3167<td>
3168                      <p>
3169                        The month number <code class="computeroutput"><span class="special">[</span><span class="number">01</span><span class="special">,</span><span class="number">12</span><span class="special">]</span></code>;
3170                        leading zeros are permitted but not required..
3171                      </p>
3172                    </td>
3173<td>
3174                      <p>
3175                        "01" =&gt; January.
3176                      </p>
3177                    </td>
3178</tr>
3179<tr>
3180<td>
3181                      <p>
3182                        <code class="computeroutput"><span class="special">%</span><span class="identifier">M</span></code>
3183                      </p>
3184                    </td>
3185<td>
3186                      <p>
3187                        The minute <code class="computeroutput"><span class="special">[</span><span class="number">00</span><span class="special">,</span><span class="number">59</span><span class="special">]</span></code>;
3188                        leading zeros are permitted but not required.
3189                      </p>
3190                    </td>
3191<td>
3192                      <p>
3193                        .
3194                      </p>
3195                    </td>
3196</tr>
3197<tr>
3198<td>
3199                      <p>
3200                        <code class="computeroutput"><span class="special">%</span><span class="identifier">n</span>
3201                        <span class="special">%</span><span class="identifier">t</span></code>
3202                      </p>
3203                    </td>
3204<td>
3205                      <p>
3206                        Any white space..
3207                      </p>
3208                    </td>
3209<td>
3210                      <p>
3211                        .
3212                      </p>
3213                    </td>
3214</tr>
3215<tr>
3216<td>
3217                      <p>
3218                        <code class="computeroutput"><span class="special">%</span><span class="identifier">p</span></code>
3219                      </p>
3220                    </td>
3221<td>
3222                      <p>
3223                        Not supported.
3224                      </p>
3225                    </td>
3226<td>
3227                      <p>
3228                        .
3229                      </p>
3230                    </td>
3231</tr>
3232<tr>
3233<td>
3234                      <p>
3235                        <code class="computeroutput"><span class="special">%</span><span class="identifier">r</span></code>
3236                      </p>
3237                    </td>
3238<td>
3239                      <p>
3240                        Not supported.
3241                      </p>
3242                    </td>
3243<td>
3244                      <p>
3245                        .
3246                      </p>
3247                    </td>
3248</tr>
3249<tr>
3250<td>
3251                      <p>
3252                        <code class="computeroutput"><span class="special">%</span><span class="identifier">R</span></code>
3253                      </p>
3254                    </td>
3255<td>
3256                      <p>
3257                        The time as <code class="computeroutput"><span class="special">%</span><span class="identifier">H</span><span class="special">:%</span><span class="identifier">M</span></code>.
3258                      </p>
3259                    </td>
3260<td>
3261                      <p>
3262                        .
3263                      </p>
3264                    </td>
3265</tr>
3266<tr>
3267<td>
3268                      <p>
3269                        <code class="computeroutput"><span class="special">%</span><span class="identifier">S</span></code>
3270                      </p>
3271                    </td>
3272<td>
3273                      <p>
3274                        The seconds <code class="computeroutput"><span class="special">[</span><span class="number">00</span><span class="special">,</span><span class="number">60</span><span class="special">]</span></code>;
3275                        leading zeros are permitted but not required.
3276                      </p>
3277                    </td>
3278<td>
3279                      <p>
3280                        .
3281                      </p>
3282                    </td>
3283</tr>
3284<tr>
3285<td>
3286                      <p>
3287                        <code class="computeroutput"><span class="special">%</span><span class="identifier">T</span></code>
3288                      </p>
3289                    </td>
3290<td>
3291                      <p>
3292                        The time as <code class="computeroutput"><span class="special">%</span><span class="identifier">H</span><span class="special">:%</span><span class="identifier">M</span><span class="special">:%</span><span class="identifier">S</span></code>.
3293                      </p>
3294                    </td>
3295<td>
3296                      <p>
3297                        .
3298                      </p>
3299                    </td>
3300</tr>
3301<tr>
3302<td>
3303                      <p>
3304                        <code class="computeroutput"><span class="special">%</span><span class="identifier">U</span></code>
3305                      </p>
3306                    </td>
3307<td>
3308                      <p>
3309                        Not supported.
3310                      </p>
3311                    </td>
3312<td>
3313                      <p>
3314                        .
3315                      </p>
3316                    </td>
3317</tr>
3318<tr>
3319<td>
3320                      <p>
3321                        <code class="computeroutput"><span class="special">%</span><span class="identifier">w</span></code>
3322                      </p>
3323                    </td>
3324<td>
3325                      <p>
3326                        The weekday as a decimal number <code class="computeroutput"><span class="special">[</span><span class="number">0</span><span class="special">,</span><span class="number">6</span><span class="special">]</span></code>,
3327                        with 0 representing Sunday; leading zeros are permitted but
3328                        not required..
3329                      </p>
3330                    </td>
3331<td>
3332                      <p>
3333                        "0" =&gt; Sunday.
3334                      </p>
3335                    </td>
3336</tr>
3337<tr>
3338<td>
3339                      <p>
3340                        <code class="computeroutput"><span class="special">%</span><span class="identifier">W</span></code>
3341                      </p>
3342                    </td>
3343<td>
3344                      <p>
3345                        Not supported.
3346                      </p>
3347                    </td>
3348<td>
3349                      <p>
3350                        .
3351                      </p>
3352                    </td>
3353</tr>
3354<tr>
3355<td>
3356                      <p>
3357                        <code class="computeroutput"><span class="special">%</span><span class="identifier">x</span></code>
3358                      </p>
3359                    </td>
3360<td>
3361                      <p>
3362                        The date, using the locale's date format..
3363                      </p>
3364                    </td>
3365<td>
3366                      <p>
3367                        .
3368                      </p>
3369                    </td>
3370</tr>
3371<tr>
3372<td>
3373                      <p>
3374                        <code class="computeroutput"><span class="special">%</span><span class="identifier">X</span></code>
3375                      </p>
3376                    </td>
3377<td>
3378                      <p>
3379                        Not supported.
3380                      </p>
3381                    </td>
3382<td>
3383                      <p>
3384                        .
3385                      </p>
3386                    </td>
3387</tr>
3388<tr>
3389<td>
3390                      <p>
3391                        <code class="computeroutput"><span class="special">%</span><span class="identifier">y</span></code>
3392                      </p>
3393                    </td>
3394<td>
3395                      <p>
3396                        Not supported.
3397                      </p>
3398                    </td>
3399<td>
3400                      <p>
3401                        "2005".
3402                      </p>
3403                    </td>
3404</tr>
3405<tr>
3406<td>
3407                      <p>
3408                        <code class="computeroutput"><span class="special">%</span><span class="identifier">Y</span></code>
3409                      </p>
3410                    </td>
3411<td>
3412                      <p>
3413                        The year, including the century (for example, 1988).
3414                      </p>
3415                    </td>
3416<td>
3417                      <p>
3418                        .
3419                      </p>
3420                    </td>
3421</tr>
3422</tbody>
3423</table></div>
3424</div>
3425<br class="table-break">
3426</div>
3427</div>
3428<div class="section">
3429<div class="titlepage"><div><div><h5 class="title">
3430<a name="chrono.reference.io.ios_state_hpp.ioss"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss" title="I/O State Savers">I/O State
3431          Savers</a>
3432</h5></div></div></div>
3433<div class="section">
3434<div class="titlepage"><div><div><h6 class="title">
3435<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver">Template
3436            Class <code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a>
3437</h6></div></div></div>
3438<pre class="programlisting"><span class="comment">// i/o state savers</span>
3439
3440<span class="keyword">struct</span> <span class="identifier">duration_style_io_saver</span>
3441<span class="special">{</span>
3442  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="identifier">state_type</span><span class="special">;</span> <span class="comment">// the state type is ios_base</span>
3443  <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <span class="identifier">aspect_type</span><span class="special">;</span> <span class="comment">// the aspect type is the __duration_style</span>
3444
3445  <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c1" title="Constructor duration_style_io_saver(state_type&amp;)"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
3446  <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c2" title="Constructor duration_style_io_saver(state_type&amp;, aspect_type)"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span>
3447  <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.d" title="Destructor ~duration_style_io_saver()"><code class="computeroutput"><span class="special">~</span><span class="identifier">duration_style_io_saver</span></code></a><span class="special">();</span>
3448  <span class="keyword">void</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a><span class="special">();</span>
3449<span class="special">};</span>
3450</pre>
3451<p>
3452              The <code class="computeroutput"><span class="identifier">state_type</span></code> is a
3453              version of the IOStreams base class <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span></code>.
3454            </p>
3455<div class="section">
3456<div class="titlepage"><div><div><h6 class="title">
3457<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c1"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c1" title="Constructor duration_style_io_saver(state_type&amp;)">Constructor
3458              <code class="computeroutput"><span class="identifier">duration_style_io_saver</span><span class="special">(</span><span class="identifier">state_type</span><span class="special">&amp;)</span></code></a>
3459</h6></div></div></div>
3460<p>
3461                This constructor takes a stream object and saves a reference to the
3462                stream and the current value of a particular stream attribute.
3463              </p>
3464<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_style_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
3465</pre>
3466<p>
3467                <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a>
3468                by storing <code class="computeroutput"><span class="identifier">s</span></code>.
3469              </p>
3470</div>
3471<div class="section">
3472<div class="titlepage"><div><div><h6 class="title">
3473<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c2"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c2" title="Constructor duration_style_io_saver(state_type&amp;, aspect_type)">Constructor
3474              <code class="computeroutput"><span class="identifier">duration_style_io_saver</span><span class="special">(</span><span class="identifier">state_type</span><span class="special">&amp;,</span> <span class="identifier">aspect_type</span><span class="special">)</span></code></a>
3475</h6></div></div></div>
3476<p>
3477                This constructor works like the previous one, and in addition uses
3478                its second argument to change the stream's attribute to the new
3479                <code class="computeroutput"><span class="identifier">aspect_type</span></code> value
3480                given.
3481              </p>
3482<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_style_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span>
3483</pre>
3484<p>
3485                <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a>
3486                by storing <code class="computeroutput"><span class="identifier">s</span></code>. Sets
3487                the <code class="computeroutput"><span class="identifier">state_type</span></code> <code class="computeroutput"><span class="identifier">aspect_type</span></code> with the value <code class="computeroutput"><span class="identifier">new_value</span></code>.
3488              </p>
3489</div>
3490<div class="section">
3491<div class="titlepage"><div><div><h6 class="title">
3492<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.d"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.d" title="Destructor ~duration_style_io_saver()">Destructor
3493              <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_style_io_saver</span><span class="special">()</span></code></a>
3494</h6></div></div></div>
3495<p>
3496                The destructor restores the stream's attribute to the saved value.
3497              </p>
3498<pre class="programlisting"><span class="special">~</span><span class="identifier">duration_style_io_saver</span><span class="special">();</span>
3499</pre>
3500<p>
3501                <span class="bold"><strong>Effects:</strong></span> As if <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a>().
3502              </p>
3503</div>
3504<div class="section">
3505<div class="titlepage"><div><div><h6 class="title">
3506<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.restore"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.restore" title="Member Function restore()">Member
3507              Function <code class="computeroutput"><span class="identifier">restore</span><span class="special">()</span></code></a>
3508</h6></div></div></div>
3509<p>
3510                The restoration can be activated early (and often) with the restore
3511                member function.
3512              </p>
3513<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span>
3514</pre>
3515<p>
3516                <span class="bold"><strong>Effects:</strong></span> Restores the stream's
3517                <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> attribute
3518                to the saved value.
3519              </p>
3520</div>
3521</div>
3522<div class="section">
3523<div class="titlepage"><div><div><h6 class="title">
3524<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver&lt;&gt;">Template
3525            Class <code class="computeroutput"><span class="identifier">timezone_io_saver</span><span class="special">&lt;&gt;</span></code></a>
3526</h6></div></div></div>
3527<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Traits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
3528<span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a>
3529<span class="special">{</span>
3530  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span> <span class="identifier">state_type</span><span class="special">;</span>
3531  <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> <span class="identifier">aspect_type</span><span class="special">;</span>
3532
3533  <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1" title="Constructor timezone_io_saver(state_type&amp;)"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
3534  <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c2" title="Constructor timezone_io_saver(state_type&amp;, aspect_type)"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span>
3535  <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.d" title="Destructor ~timezone_io_saver()"><code class="computeroutput"><span class="special">~</span><span class="identifier">timezone_io_saver</span></code></a><span class="special">();</span>
3536  <span class="keyword">void</span> <span class="identifier">timezone_io_saver__restore</span><span class="special">();</span>
3537<span class="special">};</span>
3538</pre>
3539<p>
3540              The <code class="computeroutput"><span class="identifier">state_type</span></code> is a
3541              version of the IOStreams base class template <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span></code>, where <code class="computeroutput"><span class="identifier">CharT</span></code>
3542              is a character type and <code class="computeroutput"><span class="identifier">Traits</span></code>
3543              is a character traits class. The user would usually place an actual
3544              input, output, or combined stream object for the state-type parameter,
3545              and not a base class object.
3546            </p>
3547<div class="section">
3548<div class="titlepage"><div><div><h6 class="title">
3549<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1" title="Constructor timezone_io_saver(state_type&amp;)">Constructor
3550              <code class="computeroutput"><span class="identifier">timezone_io_saver</span><span class="special">(</span><span class="identifier">state_type</span><span class="special">&amp;)</span></code></a>
3551</h6></div></div></div>
3552<p>
3553                This constructor takes a stream object and saves a reference to the
3554                stream and the current value of a particular stream attribute.
3555              </p>
3556<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">timezone_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
3557</pre>
3558<p>
3559                <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a> by storing
3560                <code class="computeroutput"><span class="identifier">s</span></code>.
3561              </p>
3562</div>
3563<div class="section">
3564<div class="titlepage"><div><div><h6 class="title">
3565<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c2"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c2" title="Constructor timezone_io_saver(state_type&amp;, aspect_type)">Constructor
3566              <code class="computeroutput"><span class="identifier">timezone_io_saver</span><span class="special">(</span><span class="identifier">state_type</span><span class="special">&amp;,</span>
3567              <span class="identifier">aspect_type</span><span class="special">)</span></code></a>
3568</h6></div></div></div>
3569<p>
3570                This constructor works like the previous one, and uses its second
3571                argument to change the stream's attribute to the new aspect_type
3572                value given.
3573              </p>
3574<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">timezone_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span>
3575</pre>
3576<p>
3577                <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a> by storing
3578                <code class="computeroutput"><span class="identifier">s</span></code>. Sets the <code class="computeroutput"><span class="identifier">state_type</span></code> <code class="computeroutput"><span class="identifier">aspect_type</span></code>
3579                with the value <code class="computeroutput"><span class="identifier">new_value</span></code>.
3580              </p>
3581</div>
3582<div class="section">
3583<div class="titlepage"><div><div><h6 class="title">
3584<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.d"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.d" title="Destructor ~timezone_io_saver()">Destructor
3585              <code class="computeroutput"><span class="special">~</span><span class="identifier">timezone_io_saver</span><span class="special">()</span></code></a>
3586</h6></div></div></div>
3587<p>
3588                The destructor restores the stream's attribute to the saved value.
3589              </p>
3590<pre class="programlisting"><span class="special">~</span><span class="identifier">timezone_io_saver</span><span class="special">();</span>
3591</pre>
3592<p>
3593                <span class="bold"><strong>Effects:</strong></span> As if <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a>().
3594              </p>
3595</div>
3596<div class="section">
3597<div class="titlepage"><div><div><h6 class="title">
3598<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.restore"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.restore" title="Member Function restore()">Member
3599              Function <code class="computeroutput"><span class="identifier">restore</span><span class="special">()</span></code></a>
3600</h6></div></div></div>
3601<p>
3602                The restoration can be activated early (and often) with the restore
3603                member function.
3604              </p>
3605<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span>
3606</pre>
3607<p>
3608                <span class="bold"><strong>Effects:</strong></span> Restores the stream's
3609                <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> attribute to the
3610                saved value.
3611              </p>
3612</div>
3613</div>
3614<div class="section">
3615<div class="titlepage"><div><div><h6 class="title">
3616<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver&lt;&gt;">Template
3617            Class <code class="computeroutput"><span class="identifier">time_fmt_io_saver</span><span class="special">&lt;&gt;</span></code></a>
3618</h6></div></div></div>
3619<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Traits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
3620<span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a>
3621<span class="special">{</span>
3622  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span> <span class="identifier">state_type</span><span class="special">;</span>
3623
3624  <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c1" title="Constructor time_fmt_io_saver(state_type&amp;)"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
3625  <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c2" title="Constructor time_fmt_io_saver(state_type&amp;, aspect_type)"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">new_value</span><span class="special">);</span>
3626  <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.d" title="Destructor ~time_fmt_io_saver()"><code class="computeroutput"><span class="special">~</span><span class="identifier">time_fmt_io_saver</span></code></a><span class="special">();</span>
3627  <span class="keyword">void</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a><span class="special">();</span>
3628<span class="special">};</span>
3629</pre>
3630<p>
3631              The <code class="computeroutput"><span class="identifier">state_type</span></code> is a
3632              version of the IOStreams base class template <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span></code>, where <code class="computeroutput"><span class="identifier">CharT</span></code>
3633              is a character type and <code class="computeroutput"><span class="identifier">Traits</span></code>
3634              is a character traits class. The user would usually place an actual
3635              input, output, or combined stream object for the state-type parameter,
3636              and not a base class object.
3637            </p>
3638<div class="section">
3639<div class="titlepage"><div><div><h6 class="title">
3640<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c1"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c1" title="Constructor time_fmt_io_saver(state_type&amp;)">Constructor
3641              <code class="computeroutput"><span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span><span class="special">&amp;)</span></code></a>
3642</h6></div></div></div>
3643<p>
3644                This constructor takes a stream object and saves a reference to the
3645                stream and the current value of a particular stream attribute.
3646              </p>
3647<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
3648</pre>
3649<p>
3650                <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a> by storing
3651                <code class="computeroutput"><span class="identifier">s</span></code>.
3652              </p>
3653</div>
3654<div class="section">
3655<div class="titlepage"><div><div><h6 class="title">
3656<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c2"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c2" title="Constructor time_fmt_io_saver(state_type&amp;, aspect_type)">Constructor
3657              <code class="computeroutput"><span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span><span class="special">&amp;,</span>
3658              <span class="identifier">aspect_type</span><span class="special">)</span></code></a>
3659</h6></div></div></div>
3660<p>
3661                This constructor works like the previous one, and uses its second
3662                argument to change the stream's attribute to the new aspect_type
3663                value given.
3664              </p>
3665<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span>
3666</pre>
3667<p>
3668                <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a> by storing
3669                <code class="computeroutput"><span class="identifier">s</span></code>. Sets the <code class="computeroutput"><span class="identifier">state_type</span></code> <code class="computeroutput"><span class="identifier">aspect_type</span></code>
3670                with the value <code class="computeroutput"><span class="identifier">new_value</span></code>.
3671              </p>
3672</div>
3673<div class="section">
3674<div class="titlepage"><div><div><h6 class="title">
3675<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.d"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.d" title="Destructor ~time_fmt_io_saver()">Destructor
3676              <code class="computeroutput"><span class="special">~</span><span class="identifier">time_fmt_io_saver</span><span class="special">()</span></code></a>
3677</h6></div></div></div>
3678<p>
3679                The destructor restores the stream's attribute to the saved value.
3680              </p>
3681<pre class="programlisting"><span class="special">~</span><span class="identifier">time_fmt_io_saver</span><span class="special">();</span>
3682</pre>
3683<p>
3684                <span class="bold"><strong>Effects:</strong></span> As if <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a>().
3685              </p>
3686</div>
3687<div class="section">
3688<div class="titlepage"><div><div><h6 class="title">
3689<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.restore"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.restore" title="Member Function restore()">Member
3690              Function <code class="computeroutput"><span class="identifier">restore</span><span class="special">()</span></code></a>
3691</h6></div></div></div>
3692<p>
3693                The restoration can be activated early (and often) with the restore
3694                member function.
3695              </p>
3696<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span>
3697</pre>
3698<p>
3699                <span class="bold"><strong>Effects:</strong></span> Restores the stream's time
3700                format attribute to the saved value.
3701              </p>
3702</div>
3703</div>
3704</div>
3705</div>
3706<div class="section">
3707<div class="titlepage"><div><div><h4 class="title">
3708<a name="chrono.reference.io.duration_get_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp" title="Header &lt;boost/chrono/io/duration_get.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">io</span><span class="special">/</span><span class="identifier">duration_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
3709</h4></div></div></div>
3710<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io.duration_get_hpp.duration_get">Template
3711          Class <code class="computeroutput"><span class="identifier">duration_get</span></code></a></span></dt></dl></div>
3712<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3713  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
3714
3715    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
3716    <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a><span class="special">;</span>
3717
3718  <span class="special">}</span>
3719<span class="special">}</span>
3720</pre>
3721<div class="section">
3722<div class="titlepage"><div><div><h5 class="title">
3723<a name="chrono.reference.io.duration_get_hpp.duration_get"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get">Template
3724          Class <code class="computeroutput"><span class="identifier">duration_get</span></code></a>
3725</h5></div></div></div>
3726<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
3727<span class="keyword">class</span> <span class="identifier">duration_get</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">facet</span>
3728<span class="special">{</span>
3729<span class="keyword">public</span><span class="special">:</span>
3730  <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> <span class="comment">// Type of character the facet is instantiated on</span>
3731  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span> <span class="comment">// Type of character string passed to member functions.</span>
3732  <span class="keyword">typedef</span> <span class="identifier">InputIterator</span> <span class="identifier">iter_type</span><span class="special">;</span> <span class="comment">// Type of iterator used to scan the character buffer.</span>
3733
3734  <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.c" title="Constructor duration_get(size_t)"><code class="computeroutput"><span class="identifier">duration_get</span></code></a><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
3735
3736  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
3737  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get" title="Template Member Function get(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,duration&lt;Rep,Period&gt;&amp;,const char_type*, const char_type*) const"><code class="computeroutput"><span class="identifier">get</span></code></a><span class="special">(</span>
3738    <span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span>
3739    <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span>
3740    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span>
3741    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
3742    <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>
3743    <span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">pattern</span><span class="special">,</span>
3744    <span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">pat_end</span>
3745  <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
3746
3747  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
3748  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get2" title="Template Member Function get(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,duration&lt;Rep,Period&gt;&amp;) const"><code class="computeroutput"><span class="identifier">get</span></code></a><span class="special">(</span>
3749    <span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span>
3750    <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span>
3751    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span>
3752    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
3753    <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>
3754  <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
3755
3756  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
3757  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get_value" title="Template Member Function get_value(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,Rep&amp;) const"><code class="computeroutput"><span class="identifier">get_value</span></code></a><span class="special">(</span>
3758    <span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span>
3759    <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span>
3760    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span>
3761    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
3762    <span class="identifier">Rep</span><span class="special">&amp;</span> <span class="identifier">r</span>
3763  <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
3764
3765  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get_unit" title="Member Function get_unit(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,rt_ratio&amp;) const"><code class="computeroutput"><span class="identifier">get_unit</span></code></a><span class="special">(</span>
3766    <span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span>
3767    <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span>
3768    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span>
3769    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
3770    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">rt_ratio</span> <span class="special">&amp;</span><span class="identifier">rt</span>
3771  <span class="special">)</span> <span class="keyword">const</span>
3772
3773  <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span>
3774
3775  <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.d" title="Destructor ~duration_get()"><code class="computeroutput"><span class="special">~</span><span class="identifier">duration_get</span></code></a><span class="special">()</span>
3776  <span class="special">{</span>
3777  <span class="special">}</span>
3778
3779<span class="special">};</span>
3780</pre>
3781<p>
3782            The <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet extracts
3783            duration from a character string and stores the resulting value in a
3784            class duration d argument. The facet parses the string using a specific
3785            format as a guide. If the string does not fit the format, then the facet
3786            will indicate an error by setting the err argument to iosbase::failbit.
3787            In other words, user confirmation is required for reliable parsing of
3788            user-entered durations, but machine-generated formats can be parsed reliably.
3789            This allows parsers to be aggressive about interpreting user variations
3790            on standard formats.
3791          </p>
3792<div class="section">
3793<div class="titlepage"><div><div><h6 class="title">
3794<a name="chrono.reference.io.duration_get_hpp.duration_get.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.c" title="Constructor duration_get(size_t)">Constructor
3795            <code class="computeroutput"><span class="identifier">duration_get</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
3796</h6></div></div></div>
3797<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_get</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span><span class="special">);</span>
3798</pre>
3799<p>
3800              Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet.
3801            </p>
3802<p>
3803              <span class="bold"><strong>Parameters:</strong></span>
3804            </p>
3805<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
3806                  <span class="bold"><strong>refs:</strong></span> references
3807                </li></ul></div>
3808<p>
3809              <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet. If the
3810              <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated
3811              to the locale, or locales, containing it. This allows the user to ignore
3812              lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code>
3813              is <code class="computeroutput"><span class="number">1</span></code> then the object must
3814              be explicitly deleted; <code class="computeroutput"><span class="identifier">locale</span></code>
3815              will not do so. In this case, the object can be maintained across the
3816              lifetime of multiple locales.
3817            </p>
3818</div>
3819<div class="section">
3820<div class="titlepage"><div><div><h6 class="title">
3821<a name="chrono.reference.io.duration_get_hpp.duration_get.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.d" title="Destructor ~duration_get()">Destructor
3822            <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_get</span><span class="special">()</span></code></a>
3823</h6></div></div></div>
3824<pre class="programlisting"><span class="special">~</span><span class="identifier">duration_get</span><span class="special">();</span>
3825</pre>
3826<p>
3827              Destructs a <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet.
3828            </p>
3829</div>
3830<div class="section">
3831<div class="titlepage"><div><div><h6 class="title">
3832<a name="chrono.reference.io.duration_get_hpp.duration_get.get"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get" title="Template Member Function get(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,duration&lt;Rep,Period&gt;&amp;,const char_type*, const char_type*) const">Template
3833            Member Function <code class="computeroutput"><span class="identifier">get</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</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="keyword">const</span> <span class="identifier">char_type</span><span class="special">*,</span> <span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*)</span>
3834            <span class="keyword">const</span></code></a>
3835</h6></div></div></div>
3836<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
3837<span class="identifier">iter_type</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
3838    <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;</span> <span class="special">&amp;</span><span class="identifier">d</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">char_type</span> <span class="special">*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">char_type</span> <span class="special">*</span><span class="identifier">pat_end</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
3839</pre>
3840<p>
3841              Extracts a duration from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code>
3842              following the pattern <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code>.
3843            </p>
3844<p>
3845              <span class="bold"><strong>Parameters:</strong></span>
3846            </p>
3847<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
3848<li class="listitem">
3849                  <span class="bold"><strong>s:</strong></span> start input stream iterator
3850                </li>
3851<li class="listitem">
3852                  <span class="bold"><strong>end:</strong></span> end input stream iterator
3853                </li>
3854<li class="listitem">
3855                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
3856                </li>
3857<li class="listitem">
3858                  <span class="bold"><strong>err:</strong></span> the ios_base state
3859                </li>
3860<li class="listitem">
3861                  <span class="bold"><strong>d:</strong></span> the duration
3862                </li>
3863<li class="listitem">
3864                  <span class="bold"><strong>pattern:</strong></span> begin of the formatting
3865                  pattern
3866                </li>
3867<li class="listitem">
3868                  <span class="bold"><strong>pat_end:</strong></span> end of the formatting
3869                  pattern
3870                </li>
3871</ul></div>
3872<p>
3873              <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">)</span> <span class="keyword">and</span> <span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span>
3874              <span class="identifier">pat_end</span><span class="special">)</span></code>
3875              shall be valid ranges.
3876            </p>
3877<p>
3878              <span class="bold"><strong>Effects:</strong></span> The function starts by evaluating
3879              <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span>
3880              <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code>.
3881            </p>
3882<p>
3883              Then it computes an intermediate representation based on <code class="computeroutput"><span class="identifier">Rep</span></code> according to the following rules:
3884            </p>
3885<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
3886<li class="listitem">
3887                  If <code class="computeroutput"><span class="identifier">Rep</span></code> is a floating
3888                  point type, the intermediate representation is <code class="computeroutput"><span class="keyword">long</span>
3889                  <span class="keyword">double</span></code>.
3890                </li>
3891<li class="listitem">
3892                  Else if <code class="computeroutput"><span class="identifier">Rep</span></code> is
3893                  a signed integral type, the intermediate representation is <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>.
3894                </li>
3895<li class="listitem">
3896                  Else if <code class="computeroutput"><span class="identifier">Rep</span></code> is
3897                  an unsigned integral type, the intermediate representation is unsigned
3898                  long long.
3899                </li>
3900<li class="listitem">
3901                  Else intermediate representation is <code class="computeroutput"><span class="identifier">Rep</span></code>.
3902                </li>
3903</ul></div>
3904<p>
3905              Next the following local variable <code class="computeroutput"><span class="identifier">r</span></code>
3906              of type intermediate representation and <code class="computeroutput"><span class="identifier">rt</span></code>
3907              of type <code class="computeroutput"><span class="identifier">rt_ratio</span></code> are
3908              default constructed.
3909            </p>
3910<p>
3911              It then enters a loop, reading zero or more characters from <code class="computeroutput"><span class="identifier">s</span></code> at each iteration. Unless otherwise
3912              specified below, the loop terminates when the first of the following
3913              conditions holds:
3914            </p>
3915<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
3916<li class="listitem">
3917                  The expression <code class="computeroutput"><span class="identifier">pattern</span>
3918                  <span class="special">==</span> <span class="identifier">pat_end</span></code>
3919                  evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
3920                </li>
3921<li class="listitem">
3922                  The expression <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code>
3923                  evaluates to false.
3924                </li>
3925<li class="listitem">
3926                  The expression <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span> <span class="identifier">end</span></code>
3927                  evaluates to <code class="computeroutput"><span class="keyword">true</span></code>,
3928                  in which case the function evaluates <code class="computeroutput"><span class="identifier">err</span>
3929                  <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">eofbit</span>
3930                  <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>.
3931                </li>
3932<li class="listitem">
3933                  The next element of pattern is equal to <code class="computeroutput"><span class="char">'%'</span></code>,
3934                  followed by a conversion specifier character, format. If the number
3935                  of elements in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code>
3936                  is not sufficient to unambiguously determine whether the conversion
3937                  specification is complete and valid, the function evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span>
3938                  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise, the function
3939                  evaluates <code class="computeroutput"><span class="identifier">s</span> <span class="special">=</span>
3940                  <span class="identifier">get_value</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>
3941                  <span class="identifier">end</span><span class="special">,</span>
3942                  <span class="identifier">ios</span><span class="special">,</span>
3943                  <span class="identifier">err</span><span class="special">,</span>
3944                  <span class="identifier">r</span><span class="special">)</span></code>
3945                  when the conversion specification is 'v' and <code class="computeroutput"><span class="identifier">s</span>
3946                  <span class="special">=</span> <span class="identifier">get_value</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">rt</span><span class="special">)</span></code> when the conversion specification
3947                  is 'u'. If <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code>
3948                  holds after the evaluation of the expression, the function increments
3949                  pattern to point just past the end of the conversion specification
3950                  and continues looping.
3951                </li>
3952<li class="listitem">
3953                  The expression <code class="computeroutput"><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> evaluates to <code class="computeroutput"><span class="keyword">true</span></code>,
3954                  in which case the function first increments pattern until <code class="computeroutput"><span class="identifier">pattern</span> <span class="special">==</span>
3955                  <span class="identifier">pat_end</span> <span class="special">||</span>
3956                  <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> evaluates to <code class="computeroutput"><span class="keyword">true</span></code>,
3957                  then advances <code class="computeroutput"><span class="identifier">s</span></code>
3958                  until <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span>
3959                  <span class="identifier">end</span> <span class="special">||</span>
3960                  <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>,
3961                  and finally resumes looping.
3962                </li>
3963<li class="listitem">
3964                  The next character read from <code class="computeroutput"><span class="identifier">s</span></code>
3965                  matches the element pointed to by pattern in a case-insensitive
3966                  comparison, in which case the function evaluates <code class="computeroutput"><span class="special">++</span><span class="identifier">pattern</span><span class="special">,</span> <span class="special">++</span><span class="identifier">s</span></code> and continues looping. Otherwise,
3967                  the function evaluates <code class="computeroutput"><span class="identifier">err</span>
3968                  <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>.
3969                </li>
3970</ul></div>
3971<p>
3972              If a duration representation value and a unit specifier have successfully
3973              been parsed, compute <code class="computeroutput"><span class="special">(</span><span class="identifier">rt</span><span class="special">.</span><span class="identifier">num</span><span class="special">/</span><span class="identifier">rt</span><span class="special">.</span><span class="identifier">den</span><span class="special">)/(</span><span class="identifier">Period</span><span class="special">::</span><span class="identifier">num</span><span class="special">/</span><span class="identifier">Period</span><span class="special">::</span><span class="identifier">den</span><span class="special">)</span></code>
3974              reduced to lowest terms. If this ratio can not be stored without overflow,
3975              evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span>
3976              <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise store the result
3977              of this division in <code class="computeroutput"><span class="identifier">num</span></code>
3978              and <code class="computeroutput"><span class="identifier">den</span></code>.
3979            </p>
3980<p>
3981              If the division did not result in overflow, then compute <code class="computeroutput"><span class="identifier">r</span> <span class="special">*</span> <span class="identifier">num</span> <span class="special">/</span> <span class="identifier">den</span></code> in such a way as to avoid intermediate
3982              overflow. If <code class="computeroutput"><span class="identifier">r</span></code> has
3983              integral type and this computation would not be exact, evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. If the result of the computation
3984              would overflow <code class="computeroutput"><span class="identifier">Rep</span></code>,
3985              evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span>
3986              <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise the result of
3987              <code class="computeroutput"><span class="identifier">r</span> <span class="special">*</span>
3988              <span class="identifier">num</span> <span class="special">/</span>
3989              <span class="identifier">den</span></code> is used to construct
3990              a <code class="computeroutput"><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;</span></code>
3991              which is assigned to <code class="computeroutput"><span class="identifier">d</span></code>.
3992            </p>
3993<p>
3994              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>,
3995              an iterator pointing just beyond the last character that can be determined
3996              to be part of a valid duration.
3997            </p>
3998</div>
3999<div class="section">
4000<div class="titlepage"><div><div><h6 class="title">
4001<a name="chrono.reference.io.duration_get_hpp.duration_get.get2"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get2" title="Template Member Function get(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,duration&lt;Rep,Period&gt;&amp;) const">Template
4002            Member Function <code class="computeroutput"><span class="identifier">get</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</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>
4003            <span class="keyword">const</span></code></a>
4004</h6></div></div></div>
4005<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4006<span class="identifier">iter_type</span> <span class="identifier">get</span><span class="special">(</span>
4007  <span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span>
4008  <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span>
4009  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span>
4010  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
4011  <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>
4012<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4013</pre>
4014<p>
4015              Extracts a duration from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code>
4016              following the default pattern.
4017            </p>
4018<p>
4019              <span class="bold"><strong>Parameters:</strong></span>
4020            </p>
4021<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4022<li class="listitem">
4023                  <span class="bold"><strong>s:</strong></span> start input stream iterator
4024                </li>
4025<li class="listitem">
4026                  <span class="bold"><strong>end:</strong></span> end input stream iterator
4027                </li>
4028<li class="listitem">
4029                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4030                </li>
4031<li class="listitem">
4032                  <span class="bold"><strong>err:</strong></span> the ios_base state
4033                </li>
4034<li class="listitem">
4035                  <span class="bold"><strong>d:</strong></span> the duration
4036                </li>
4037</ul></div>
4038<p>
4039              <span class="bold"><strong>Effects:</strong></span> Stores the duration pattern
4040              from the __duration_unit facet associated to 'ios<code class="computeroutput"> <span class="identifier">in</span>
4041              <span class="identifier">let</span> <span class="identifier">say</span>
4042              </code>str`. Last as if
4043            </p>
4044<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
4045</pre>
4046<p>
4047              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>,
4048              an iterator pointing just beyond the last character that can be determined
4049              to be part of a valid duration.
4050            </p>
4051</div>
4052<div class="section">
4053<div class="titlepage"><div><div><h6 class="title">
4054<a name="chrono.reference.io.duration_get_hpp.duration_get.get_value"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get_value" title="Template Member Function get_value(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,Rep&amp;) const">Template
4055            Member Function <code class="computeroutput"><span class="identifier">get_value</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</span><span class="identifier">Rep</span><span class="special">&amp;)</span> <span class="keyword">const</span></code></a>
4056</h6></div></div></div>
4057<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
4058<span class="identifier">iter_type</span> <span class="identifier">get_value</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">Rep</span><span class="special">&amp;</span> <span class="identifier">r</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4059</pre>
4060<p>
4061              Extracts a duration representation from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code>.
4062            </p>
4063<p>
4064              <span class="bold"><strong>Parameters:</strong></span>
4065            </p>
4066<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4067<li class="listitem">
4068                  <span class="bold"><strong>s:</strong></span> start input stream iterator
4069                </li>
4070<li class="listitem">
4071                  <span class="bold"><strong>end:</strong></span> end input stream iterator
4072                </li>
4073<li class="listitem">
4074                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4075                </li>
4076<li class="listitem">
4077                  <span class="bold"><strong>err:</strong></span> the ios_base state
4078                </li>
4079<li class="listitem">
4080                  <span class="bold"><strong>r:</strong></span> a reference to the duration
4081                  representation
4082                </li>
4083</ul></div>
4084<p>
4085              <span class="bold"><strong>Effects:</strong></span> As if
4086            </p>
4087<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">use_facet</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">iter_type</span><span class="special">&gt;&gt;(</span><span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">()).</span><span class="identifier">get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">r</span><span class="special">);</span>
4088</pre>
4089<p>
4090              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>,
4091              an iterator pointing just beyond the last character that can be determined
4092              to be part of a valid <code class="computeroutput"><span class="identifier">Rep</span></code>
4093              value.
4094            </p>
4095</div>
4096<div class="section">
4097<div class="titlepage"><div><div><h6 class="title">
4098<a name="chrono.reference.io.duration_get_hpp.duration_get.get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get_unit" title="Member Function get_unit(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,rt_ratio&amp;) const">Member
4099            Function <code class="computeroutput"><span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</span><span class="identifier">rt_ratio</span><span class="special">&amp;)</span>
4100            <span class="keyword">const</span></code></a>
4101</h6></div></div></div>
4102<pre class="programlisting"><span class="identifier">iter_type</span> <span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">rt_ratio</span> <span class="special">&amp;</span><span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4103</pre>
4104<p>
4105              Extracts a duration unit from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code>.
4106            </p>
4107<p>
4108              <span class="bold"><strong>Parameters:</strong></span>
4109            </p>
4110<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4111<li class="listitem">
4112                  <span class="bold"><strong>s:</strong></span> start input stream iterator
4113                </li>
4114<li class="listitem">
4115                  <span class="bold"><strong>end:</strong></span> end input stream iterator
4116                </li>
4117<li class="listitem">
4118                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4119                </li>
4120<li class="listitem">
4121                  <span class="bold"><strong>err:</strong></span> the ios_base state
4122                </li>
4123<li class="listitem">
4124                  <span class="bold"><strong>rt:</strong></span> a reference to the duration
4125                  run-time ratio.
4126                </li>
4127</ul></div>
4128<p>
4129              <span class="bold"><strong>Effects:</strong></span>
4130            </p>
4131<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4132                  If the first character is <code class="computeroutput"><span class="char">'['</span></code>,
4133                  an attempt is made to consume a pattern of the form <code class="computeroutput"><span class="string">"[N/D]"</span></code> where <code class="computeroutput"><span class="identifier">N</span></code> and <code class="computeroutput"><span class="identifier">D</span></code>
4134                  have type <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">long</span></code>.
4135                  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
4136<li class="listitem">
4137                        If successful, rt records the values of <code class="computeroutput"><span class="identifier">N</span></code>
4138                        and <code class="computeroutput"><span class="identifier">D</span></code>, otherwise
4139                        evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>
4140                        and return <code class="computeroutput"><span class="identifier">i</span></code>.
4141                      </li>
4142<li class="listitem">
4143                        Return the parse the longest string possible matching one
4144                        of the durations units that can follow the pattern <code class="computeroutput"><span class="string">"[N/D]"</span></code>, as if
4145                      </li>
4146</ul></div>
4147                </li></ul></div>
4148<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">do_get_n_d_prefix_unit</span><span class="special">(</span><span class="identifier">facet</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">err</span><span class="special">);</span>
4149</pre>
4150<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4151                  Otherwise the next character is not <code class="computeroutput"><span class="char">'['</span></code>.
4152                  Return the parse the longest string possible matching one of the
4153                  durations units, as if
4154                </li></ul></div>
4155<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">do_get_prefix_unit</span><span class="special">(</span><span class="identifier">facet</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">rt</span><span class="special">);</span>
4156</pre>
4157<p>
4158              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">i</span></code>,
4159              an iterator pointing just beyond the last character that can be determined
4160              to be part of a valid duration unit.
4161            </p>
4162</div>
4163<div class="section">
4164<div class="titlepage"><div><div><h6 class="title">
4165<a name="chrono.reference.io.duration_get_hpp.duration_get.do_get_n_d_prefix_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.do_get_n_d_prefix_unit" title="Protected Member Function do_get_n_d_prefix_unit(duration_units&lt;CharT&gt; const&amp;,iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;) const">Protected
4166            Member Function <code class="computeroutput"><span class="identifier">do_get_n_d_prefix_unit</span><span class="special">(</span><span class="identifier">duration_units</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;)</span> <span class="keyword">const</span></code></a>
4167</h6></div></div></div>
4168<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">iter_type</span> <span class="identifier">do_get_n_d_prefix_unit</span><span class="special">(</span>
4169  <span class="identifier">duration_units</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">facet</span><span class="special">,</span>
4170  <span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span>
4171  <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span>
4172  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span>
4173  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span>
4174<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4175</pre>
4176<p>
4177              Extracts the run-time ratio associated to the duration when it is given
4178              in [N/D] form.
4179            </p>
4180<p>
4181              This is an extension point of this facet so that we can take in account
4182              other periods that can have a useful translation in other contexts,
4183              as e.g. days and weeks.
4184            </p>
4185<p>
4186              <span class="bold"><strong>Parameters:</strong></span>
4187            </p>
4188<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4189<li class="listitem">
4190                  <span class="bold"><strong>s:</strong></span> start input stream iterator
4191                </li>
4192<li class="listitem">
4193                  <span class="bold"><strong>end:</strong></span> end input stream iterator
4194                </li>
4195<li class="listitem">
4196                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4197                </li>
4198<li class="listitem">
4199                  <span class="bold"><strong>err:</strong></span> the ios_base state
4200                </li>
4201<li class="listitem">
4202                  <span class="bold"><strong>rt:</strong></span> a reference to the duration
4203                  run-time ratio.
4204                </li>
4205</ul></div>
4206<p>
4207              <span class="bold"><strong>Effects:</strong></span> Scan <code class="computeroutput"><span class="identifier">s</span></code>
4208              for the longest of all the plural forms associated with the duration
4209              units. If successful, sets the matched ratio in <code class="computeroutput"><span class="identifier">rt</span></code>.
4210              Otherwise evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>.
4211            </p>
4212<p>
4213              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>,
4214              an iterator pointing just beyond the last character that can be determined
4215              to be part of a valid name.
4216            </p>
4217</div>
4218<div class="section">
4219<div class="titlepage"><div><div><h6 class="title">
4220<a name="chrono.reference.io.duration_get_hpp.duration_get.do_get_prefix_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.do_get_prefix_unit" title="Protected Member Function do_get_prefix_unit(duration_units&lt;CharT&gt; const&amp;,iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,detail::rt_ratio&amp;) const">Protected
4221            Member Function <code class="computeroutput"><span class="identifier">do_get_prefix_unit</span><span class="special">(</span><span class="identifier">duration_units</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">rt_ratio</span><span class="special">&amp;)</span> <span class="keyword">const</span></code></a>
4222</h6></div></div></div>
4223<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">iter_type</span> <span class="identifier">do_get_prefix_unit</span><span class="special">(</span>
4224  <span class="identifier">duration_units</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">facet</span><span class="special">,</span>
4225  <span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span>
4226  <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span>
4227  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span>
4228  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
4229  <span class="identifier">detail</span><span class="special">::</span><span class="identifier">rt_ratio</span> <span class="special">&amp;</span><span class="identifier">rt</span>
4230<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4231</pre>
4232<p>
4233              Extracts the run-time ratio associated to the duration when it is given
4234              in prefix form.
4235            </p>
4236<p>
4237              This is an extension point of this facet so that we can take in account
4238              other periods that can have a useful translation in other contexts,
4239              as e.g. days and weeks.
4240            </p>
4241<p>
4242              <span class="bold"><strong>Parameters:</strong></span>
4243            </p>
4244<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4245<li class="listitem">
4246                  <span class="bold"><strong>s:</strong></span> start input stream iterator
4247                </li>
4248<li class="listitem">
4249                  <span class="bold"><strong>end:</strong></span> end input stream iterator
4250                </li>
4251<li class="listitem">
4252                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4253                </li>
4254<li class="listitem">
4255                  <span class="bold"><strong>err:</strong></span> the ios_base state
4256                </li>
4257<li class="listitem">
4258                  <span class="bold"><strong>rt:</strong></span> a reference to the duration
4259                  run-time ratio.
4260                </li>
4261</ul></div>
4262<p>
4263              <span class="bold"><strong>Effects:</strong></span> Scan <code class="computeroutput"><span class="identifier">s</span></code>
4264              for the longest of all the plural forms associated with the duration
4265              units. If successful, sets the matched ratio in <code class="computeroutput"><span class="identifier">rt</span></code>.
4266              Otherwise evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>.
4267            </p>
4268<p>
4269              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>,
4270              an iterator pointing just beyond the last character that can be determined
4271              to be part of a valid name.
4272            </p>
4273</div>
4274</div>
4275</div>
4276<div class="section">
4277<div class="titlepage"><div><div><h4 class="title">
4278<a name="chrono.reference.io.duration_put_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp" title="Header &lt;boost/chrono/io/duration_put.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">io</span><span class="special">/</span><span class="identifier">duration_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
4279</h4></div></div></div>
4280<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io.duration_put_hpp.duration_put">Template
4281          Class <code class="computeroutput"><span class="identifier">duration_put</span></code></a></span></dt></dl></div>
4282<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
4283  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
4284
4285    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
4286    <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special">;</span>
4287
4288  <span class="special">}</span>
4289<span class="special">}</span>
4290</pre>
4291<div class="section">
4292<div class="titlepage"><div><div><h5 class="title">
4293<a name="chrono.reference.io.duration_put_hpp.duration_put"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put">Template
4294          Class <code class="computeroutput"><span class="identifier">duration_put</span></code></a>
4295</h5></div></div></div>
4296<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
4297<span class="keyword">class</span> <span class="identifier">duration_put</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">facet</span>
4298<span class="special">{</span>
4299<span class="keyword">public</span><span class="special">:</span>
4300  <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> <span class="comment">// Type of character the facet is instantiated on.</span>
4301  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span> <span class="comment">// Type of character string passed to member functions.</span>
4302  <span class="keyword">typedef</span> <span class="identifier">OutputIterator</span> <span class="identifier">iter_type</span><span class="special">;</span> <span class="comment">// Type of iterator used to write in the character buffer.</span>
4303
4304  <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.c" title="Constructor duration_put(size_t)"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
4305
4306  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4307  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put" title="Member Function put(iter_type,std::ios_base&amp;,char_type,duration&lt;Rep,Period&gt; const&amp;, const CharT*,const CharT*)"><code class="computeroutput"><span class="identifier">put</span></code></a><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pattern</span><span class="special">,</span>
4308      <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pat_end</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4309
4310  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4311  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put2" title="Member Function put(iter_type,std::ios_base&amp;,char_type fill, duration&lt;Rep, Period&gt; const&amp;)"><code class="computeroutput"><span class="identifier">put</span></code></a><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4312
4313  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4314  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put_value" title="Member Function put_value(iter_type, std::ios_base&amp;, char_type, duration&lt;Rep,Period&gt; const&amp;)"><code class="computeroutput"><span class="identifier">put_value</span></code></a><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4315
4316  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4317  <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put_unit" title="Member Function put_unit(iter_type,std::ios_base&amp;,char_type,duration&lt;Rep, Period&gt; const&amp;)"><code class="computeroutput"><span class="identifier">put_unit</span></code></a><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4318
4319
4320  <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span>
4321
4322  <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.d" title="Destructor ~duration_put()"><code class="computeroutput"><span class="special">~</span><span class="identifier">duration_put</span></code></a><span class="special">();</span>
4323<span class="special">};</span>
4324</pre>
4325<div class="section">
4326<div class="titlepage"><div><div><h6 class="title">
4327<a name="chrono.reference.io.duration_put_hpp.duration_put.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.c" title="Constructor duration_put(size_t)">Constructor
4328            <code class="computeroutput"><span class="identifier">duration_put</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
4329</h6></div></div></div>
4330<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_put</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span><span class="special">);</span>
4331</pre>
4332<p>
4333              Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet.
4334            </p>
4335<p>
4336              <span class="bold"><strong>Parameters:</strong></span>
4337            </p>
4338<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4339                  <span class="bold"><strong>refs:</strong></span> references
4340                </li></ul></div>
4341<p>
4342              <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet. If the
4343              <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated
4344              to the locale, or locales, containing it. This allows the user to ignore
4345              lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code>
4346              is <code class="computeroutput"><span class="number">1</span></code> then the object must
4347              be explicitly deleted; <code class="computeroutput"><span class="identifier">locale</span></code>
4348              will not do so. In this case, the object can be maintained across the
4349              lifetime of multiple locales.
4350            </p>
4351</div>
4352<div class="section">
4353<div class="titlepage"><div><div><h6 class="title">
4354<a name="chrono.reference.io.duration_put_hpp.duration_put.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.d" title="Destructor ~duration_put()">Destructor
4355            <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_put</span><span class="special">()</span></code></a>
4356</h6></div></div></div>
4357<pre class="programlisting"><span class="special">~</span><span class="identifier">duration_put</span><span class="special">();</span>
4358</pre>
4359<p>
4360              Destructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet.
4361            </p>
4362</div>
4363<div class="section">
4364<div class="titlepage"><div><div><h6 class="title">
4365<a name="chrono.reference.io.duration_put_hpp.duration_put.put"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put" title="Member Function put(iter_type,std::ios_base&amp;,char_type,duration&lt;Rep,Period&gt; const&amp;, const CharT*,const CharT*)">Member
4366            Function <code class="computeroutput"><span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">char_type</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;</span>
4367            <span class="keyword">const</span><span class="special">&amp;,</span>
4368            <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*,</span><span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*)</span></code></a>
4369</h6></div></div></div>
4370<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4371<span class="identifier">iter_type</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pattern</span><span class="special">,</span>
4372    <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pat_end</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4373</pre>
4374<p>
4375              <span class="bold"><strong>Parameters:</strong></span>
4376            </p>
4377<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4378<li class="listitem">
4379                  <span class="bold"><strong>s:</strong></span> an output stream iterator
4380                </li>
4381<li class="listitem">
4382                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4383                </li>
4384<li class="listitem">
4385                  <span class="bold"><strong>d:</strong></span> the duration
4386                </li>
4387<li class="listitem">
4388                  <span class="bold"><strong>pattern:</strong></span> begin of the formatting
4389                  pattern
4390                </li>
4391<li class="listitem">
4392                  <span class="bold"><strong>pat_end:</strong></span> end of the formatting
4393                  pattern
4394                </li>
4395</ul></div>
4396<p>
4397              <span class="bold"><strong>Effects:</strong></span> Steps through the sequence
4398              from <code class="computeroutput"><span class="identifier">pattern</span></code> to <code class="computeroutput"><span class="identifier">pat_end</span></code>, identifying characters that
4399              are part of a pattern sequence. Each character that is not part of
4400              a pattern sequence is written to <code class="computeroutput"><span class="identifier">s</span></code>
4401              immediately, and each pattern sequence, as it is identified, results
4402              in a call to <code class="computeroutput"><span class="identifier">put_value</span></code>
4403              or <code class="computeroutput"><span class="identifier">put_unit</span></code>; thus,
4404              pattern elements and other characters are interleaved in the output
4405              in the order in which they appear in the pattern. Pattern sequences
4406              are identified by converting each character <code class="computeroutput"><span class="identifier">c</span></code>
4407              to a <code class="computeroutput"><span class="keyword">char</span></code> value as if
4408              by <code class="computeroutput"><span class="identifier">ct</span><span class="special">.</span><span class="identifier">narrow</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code>, where
4409              <code class="computeroutput"><span class="identifier">ct</span></code> is a reference to
4410              <code class="computeroutput"><span class="identifier">ctype</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span></code>
4411              obtained from <code class="computeroutput"><span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">()</span></code>.
4412              The first character of each sequence is equal to <code class="computeroutput"><span class="char">'%'</span></code>,
4413              followed by a pattern specifier character specifier, which can be
4414              <code class="computeroutput"><span class="char">'v'</span></code> for the duration value
4415              or <code class="computeroutput"><span class="char">'u'</span></code> for the duration unit.
4416              . For each valid pattern sequence identified, calls <code class="computeroutput"><span class="identifier">put_value</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">)</span></code> or <code class="computeroutput"><span class="identifier">put_unit</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">)</span></code>.
4417            </p>
4418<p>
4419              <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
4420              after the last character produced.
4421            </p>
4422</div>
4423<div class="section">
4424<div class="titlepage"><div><div><h6 class="title">
4425<a name="chrono.reference.io.duration_put_hpp.duration_put.put2"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put2" title="Member Function put(iter_type,std::ios_base&amp;,char_type fill, duration&lt;Rep, Period&gt; const&amp;)">Member
4426            Function <code class="computeroutput"><span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;)</span></code></a>
4427</h6></div></div></div>
4428<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4429<span class="identifier">iter_type</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4430</pre>
4431<p>
4432              <span class="bold"><strong>Parameters:</strong></span>
4433            </p>
4434<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4435<li class="listitem">
4436                  <span class="bold"><strong>s:</strong></span> an output stream iterator
4437                </li>
4438<li class="listitem">
4439                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4440                </li>
4441<li class="listitem">
4442                  <span class="bold"><strong>d:</strong></span> the duration
4443                </li>
4444</ul></div>
4445<p>
4446              Retrieves Stores the duration pattern from the __duration_unit facet
4447              in let say <code class="computeroutput"><span class="identifier">str</span></code>. Last
4448              as if
4449            </p>
4450<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
4451</pre>
4452<p>
4453              <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
4454              after the last character produced.
4455            </p>
4456</div>
4457<div class="section">
4458<div class="titlepage"><div><div><h6 class="title">
4459<a name="chrono.reference.io.duration_put_hpp.duration_put.put_value"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put_value" title="Member Function put_value(iter_type, std::ios_base&amp;, char_type, duration&lt;Rep,Period&gt; const&amp;)">Member
4460            Function <code class="computeroutput"><span class="identifier">put_value</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span>
4461            <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span>
4462            <span class="identifier">char_type</span><span class="special">,</span>
4463            <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;</span>
4464            <span class="keyword">const</span><span class="special">&amp;)</span></code></a>
4465</h6></div></div></div>
4466<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4467<span class="identifier">iter_type</span> <span class="identifier">put_value</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4468</pre>
4469<p>
4470              <span class="bold"><strong>Parameters:</strong></span>
4471            </p>
4472<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4473<li class="listitem">
4474                  <span class="bold"><strong>s:</strong></span> an output stream iterator
4475                </li>
4476<li class="listitem">
4477                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4478                </li>
4479<li class="listitem">
4480                  <span class="bold"><strong>d:</strong></span> the duration
4481                </li>
4482</ul></div>
4483<p>
4484              <span class="bold"><strong>Effects:</strong></span> As if std::use_facet&lt;std::num_put&lt;CharT,
4485              iter_type&gt; &gt;(ios.getloc()).put(s, ios, ' ', static_cast&lt;long
4486              int&gt; (d.count())).
4487            </p>
4488<p>
4489              <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
4490              after the last character produced.
4491            </p>
4492</div>
4493<div class="section">
4494<div class="titlepage"><div><div><h6 class="title">
4495<a name="chrono.reference.io.duration_put_hpp.duration_put.put_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put_unit" title="Member Function put_unit(iter_type,std::ios_base&amp;,char_type,duration&lt;Rep, Period&gt; const&amp;)">Member
4496            Function <code class="computeroutput"><span class="identifier">put_unit</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">char_type</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;</span>
4497            <span class="keyword">const</span><span class="special">&amp;)</span></code></a>
4498</h6></div></div></div>
4499<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4500<span class="identifier">iter_type</span> <span class="identifier">put_unit</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4501</pre>
4502<p>
4503              <span class="bold"><strong>Parameters:</strong></span>
4504            </p>
4505<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4506<li class="listitem">
4507                  <span class="bold"><strong>s:</strong></span> an output stream iterator
4508                </li>
4509<li class="listitem">
4510                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4511                </li>
4512<li class="listitem">
4513                  <span class="bold"><strong>fill:</strong></span> the fill character
4514                </li>
4515<li class="listitem">
4516                  <span class="bold"><strong>d:</strong></span> the duration
4517                </li>
4518</ul></div>
4519<p>
4520              <span class="bold"><strong>Effects:</strong></span> Let <code class="computeroutput"><span class="identifier">facet</span></code>
4521              be the <code class="computeroutput"><span class="identifier">duration_units</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code> facet associated to <code class="computeroutput"><span class="identifier">ios</span></code>. If the associated unit is named,
4522              as if
4523            </p>
4524<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">facet</span><span class="special">.</span><span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">get_duration_style</span><span class="special">(</span><span class="identifier">ios</span><span class="special">),</span> <span class="identifier">d</span><span class="special">);</span>
4525<span class="identifier">s</span><span class="special">=</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">str</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">);</span>
4526</pre>
4527<p>
4528              Otherwise, format the unit as <code class="computeroutput"><span class="string">"[Period::num/Period::den]"</span></code>
4529              followed by the unit associated to [N/D] obtained using <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">get_n_d_unit</span><span class="special">(</span><span class="identifier">get_duration_style</span><span class="special">(</span><span class="identifier">ios</span><span class="special">),</span> <span class="identifier">d</span><span class="special">)</span></code>.
4530            </p>
4531<p>
4532              <span class="bold"><strong>Returns:</strong></span> s, iterator pointing immediately
4533              after the last character produced.
4534            </p>
4535</div>
4536</div>
4537</div>
4538<div class="section">
4539<div class="titlepage"><div><div><h4 class="title">
4540<a name="chrono.reference.io.duration_units_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp" title="Header &lt;boost/chrono/io/duration_units.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">io</span><span class="special">/</span><span class="identifier">duration_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
4541</h4></div></div></div>
4542<div class="toc"><dl class="toc">
4543<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_units_hpp.rt_ratio">Class
4544          <code class="computeroutput"><span class="identifier">rt_ratio</span></code></a></span></dt>
4545<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_units_hpp.duration_units">Template
4546          Class <code class="computeroutput"><span class="identifier">duration_units</span></code></a></span></dt>
4547<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default">Template
4548          Class <code class="computeroutput"><span class="identifier">duration_units_default</span></code></a></span></dt>
4549</dl></div>
4550<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
4551  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
4552    <span class="keyword">class</span> <span class="identifier">rt_ratio</span><span class="special">;</span>
4553    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
4554    <span class="keyword">class</span> <span class="identifier">duration_units</span><span class="special">;</span>
4555
4556  <span class="special">}</span>
4557<span class="special">}</span>
4558</pre>
4559<div class="section">
4560<div class="titlepage"><div><div><h5 class="title">
4561<a name="chrono.reference.io.duration_units_hpp.rt_ratio"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.rt_ratio" title="Class rt_ratio">Class
4562          <code class="computeroutput"><span class="identifier">rt_ratio</span></code></a>
4563</h5></div></div></div>
4564<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">rt_ratio</span>
4565<span class="special">{</span>
4566<span class="keyword">public</span><span class="special">:</span>
4567  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4568  <span class="identifier">rt_ratio</span><span class="special">(</span><span class="identifier">Period</span> <span class="keyword">const</span><span class="special">&amp;)</span> <span class="special">:</span>
4569    <span class="identifier">num</span><span class="special">(</span><span class="identifier">Period</span><span class="special">::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">num</span><span class="special">),</span> <span class="identifier">den</span><span class="special">(</span><span class="identifier">Period</span><span class="special">::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">den</span><span class="special">)</span>
4570  <span class="special">{</span>
4571  <span class="special">}</span>
4572
4573  <span class="identifier">rt_ratio</span><span class="special">(</span><span class="identifier">intmax_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">d</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="special">:</span>
4574    <span class="identifier">num</span><span class="special">(</span><span class="identifier">n</span><span class="special">),</span> <span class="identifier">den</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span>
4575  <span class="special">{</span>
4576  <span class="special">}</span>
4577
4578  <span class="identifier">intmax_t</span> <span class="identifier">num</span><span class="special">;</span>
4579  <span class="identifier">intmax_t</span> <span class="identifier">den</span><span class="special">;</span>
4580<span class="special">};</span>
4581</pre>
4582</div>
4583<div class="section">
4584<div class="titlepage"><div><div><h5 class="title">
4585<a name="chrono.reference.io.duration_units_hpp.duration_units"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units">Template
4586          Class <code class="computeroutput"><span class="identifier">duration_units</span></code></a>
4587</h5></div></div></div>
4588<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
4589<span class="keyword">class</span> <span class="identifier">duration_units</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">facet</span>
4590<span class="special">{</span>
4591<span class="keyword">public</span><span class="special">:</span>
4592  <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> <span class="comment">// Type of character the facet is instantiated on.</span>
4593  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span> <span class="comment">// Type of character string passed to member functions.</span>
4594  <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span>
4595
4596  <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.c" title="Constructor duration_units()"><code class="computeroutput"><span class="identifier">duration_units</span></code></a><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
4597  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_start" title="Member Function get_n_d_valid_units_start()"><code class="computeroutput"><span class="identifier">get_n_d_valid_units_start</span></code></a><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span>
4598  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_end" title="Member Function get_n_d_valid_units_end()"><code class="computeroutput"><span class="identifier">get_n_d_valid_units_end</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4599  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_start" title="Member Function get_valid_units_start()"><code class="computeroutput"><span class="identifier">get_valid_units_start</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4600  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_end" title="Member Function get_valid_units_end()"><code class="computeroutput"><span class="identifier">get_valid_units_end</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4601  <span class="keyword">virtual</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_n_d_valid_unit" title="Member Function match_n_d_valid_unit(const string_type*)"><code class="computeroutput"><span class="identifier">match_n_d_valid_unit</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4602  <span class="keyword">virtual</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_valid_unit" title="Member Function match_valid_unit(const string_type*,rt_ratio&amp;)"><code class="computeroutput"><span class="identifier">match_valid_unit</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">rt_ratio</span><span class="special">&amp;</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4603  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_pattern" title="Member Function get_pattern()"><code class="computeroutput"><span class="identifier">get_pattern</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4604  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4605  <span class="identifier">string_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_unit" title="Template Member Function get_unit(duration_style,duration&lt;Rep,Period&gt; const&amp;)"><code class="computeroutput"><span class="identifier">get_unit</span></code></a><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4606  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4607  <span class="identifier">string_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_unit" title="Template Member Function get_n_d_unit(duration_style,duration&lt;Rep,Period&gt; const&amp;)"><code class="computeroutput"><span class="identifier">get_n_d_unit</span></code></a><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4608  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4609  <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.is_named_unit" title="Template Member Function is_named_unit()"><code class="computeroutput"><span class="identifier">is_named_unit</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
4610
4611<span class="keyword">protected</span><span class="special">:</span>
4612  <span class="keyword">virtual</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.d" title="Destructor ~duration_units()"><code class="computeroutput"><span class="special">~</span><span class="identifier">duration_units</span></code></a><span class="special">();</span>
4613  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_n_d_unit" title="Protected Member Function do_get_n_d_unit(duration_style,rt_ratio,intmax_t)"><code class="computeroutput"><span class="identifier">do_get_n_d_unit</span></code></a><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4614  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_unit" title="Protected Member Function do_get_unit(duration_style,rt_ratio,intmax_t)"><code class="computeroutput"><span class="identifier">do_get_unit</span></code></a><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4615  <span class="keyword">virtual</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_is_named_unit" title="Protected Member Function do_is_named_unit(rt_ratio)"><code class="computeroutput"><span class="identifier">do_is_named_unit</span></code></a><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span>
4616<span class="special">};</span>
4617</pre>
4618<p>
4619            <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units"><code class="computeroutput"><span class="identifier">duration_units</span></code></a> facet gives useful
4620            information about the duration units, as the number of plural forms,
4621            the plural form associated to a duration, the text associated to a plural
4622            form and a duration's period,
4623          </p>
4624<div class="section">
4625<div class="titlepage"><div><div><h6 class="title">
4626<a name="chrono.reference.io.duration_units_hpp.duration_units.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.c" title="Constructor duration_units()">Constructor
4627            <code class="computeroutput"><span class="identifier">duration_units</span><span class="special">()</span></code></a>
4628</h6></div></div></div>
4629<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_units</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
4630</pre>
4631<p>
4632              Construct a <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units"><code class="computeroutput"><span class="identifier">duration_units</span></code></a> facet.
4633            </p>
4634<p>
4635              <span class="bold"><strong>Parameters:</strong></span>
4636            </p>
4637<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4638                  <span class="bold"><strong>refs:</strong></span> references
4639                </li></ul></div>
4640<p>
4641              <span class="bold"><strong>Effects:</strong></span> Construct a <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units"><code class="computeroutput"><span class="identifier">duration_units</span></code></a> facet. If the
4642              <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated
4643              to the locale, or locales, containing it. This allows the user to ignore
4644              lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code>
4645              is <code class="computeroutput"><span class="number">1</span></code> then the object must
4646              be explicitly deleted; the locale will not do so. In this case, the
4647              object can be maintained across the lifetime of multiple locales.
4648            </p>
4649</div>
4650<div class="section">
4651<div class="titlepage"><div><div><h6 class="title">
4652<a name="chrono.reference.io.duration_units_hpp.duration_units.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.d" title="Destructor ~duration_units()">Destructor
4653            <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_units</span><span class="special">()</span></code></a>
4654</h6></div></div></div>
4655<pre class="programlisting"><span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">duration_units</span><span class="special">();</span>
4656</pre>
4657<p>
4658              <span class="bold"><strong>Effects:</strong></span> Destroys the facet.
4659            </p>
4660</div>
4661<div class="section">
4662<div class="titlepage"><div><div><h6 class="title">
4663<a name="chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_start" title="Member Function get_n_d_valid_units_start()">Member
4664            Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span></code></a>
4665</h6></div></div></div>
4666<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span>
4667</pre>
4668<p>
4669              <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
4670              [N/D] units.
4671            </p>
4672</div>
4673<div class="section">
4674<div class="titlepage"><div><div><h6 class="title">
4675<a name="chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_end" title="Member Function get_n_d_valid_units_end()">Member
4676            Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span></code></a>
4677</h6></div></div></div>
4678<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4679</pre>
4680<p>
4681              <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
4682              [N/D] units.
4683            </p>
4684</div>
4685<div class="section">
4686<div class="titlepage"><div><div><h6 class="title">
4687<a name="chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_start" title="Member Function get_valid_units_start()">Member
4688            Function <code class="computeroutput"><span class="identifier">get_valid_units_start</span><span class="special">()</span></code></a>
4689</h6></div></div></div>
4690<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4691</pre>
4692<p>
4693              <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
4694              units, symbol or prefix with its different plural forms.
4695            </p>
4696</div>
4697<div class="section">
4698<div class="titlepage"><div><div><h6 class="title">
4699<a name="chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_end" title="Member Function get_valid_units_end()">Member
4700            Function <code class="computeroutput"><span class="identifier">get_valid_units_end</span><span class="special">()</span></code></a>
4701</h6></div></div></div>
4702<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4703</pre>
4704<p>
4705              <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
4706              units.
4707            </p>
4708</div>
4709<div class="section">
4710<div class="titlepage"><div><div><h6 class="title">
4711<a name="chrono.reference.io.duration_units_hpp.duration_units.match_n_d_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_n_d_valid_unit" title="Member Function match_n_d_valid_unit(const string_type*)">Member
4712            Function <code class="computeroutput"><span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*)</span></code></a>
4713</h6></div></div></div>
4714<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4715</pre>
4716<p>
4717              <span class="bold"><strong>Parameters:</strong></span>
4718            </p>
4719<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4720                  <span class="bold"><strong>k:</strong></span> the found pointer to the [N/D]
4721                  unit.
4722                </li></ul></div>
4723<p>
4724              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
4725              if <code class="computeroutput"><span class="identifier">k</span></code> matches a valid
4726              unit.
4727            </p>
4728</div>
4729<div class="section">
4730<div class="titlepage"><div><div><h6 class="title">
4731<a name="chrono.reference.io.duration_units_hpp.duration_units.match_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_valid_unit" title="Member Function match_valid_unit(const string_type*,rt_ratio&amp;)">Member
4732            Function <code class="computeroutput"><span class="identifier">match_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*,</span><span class="identifier">rt_ratio</span><span class="special">&amp;)</span></code></a>
4733</h6></div></div></div>
4734<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">match_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">rt_ratio</span><span class="special">&amp;</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4735</pre>
4736<p>
4737              <span class="bold"><strong>Parameters:</strong></span>
4738            </p>
4739<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4740                  <span class="bold"><strong>k:</strong></span> the found pointer to the unit.
4741                </li></ul></div>
4742<p>
4743              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rt</span></code>
4744              is set to the valid Period when the <code class="computeroutput"><span class="identifier">k</span></code>
4745              matches a valid unit. <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">k</span></code>
4746              matches a valid unit.
4747            </p>
4748</div>
4749<div class="section">
4750<div class="titlepage"><div><div><h6 class="title">
4751<a name="chrono.reference.io.duration_units_hpp.duration_units.get_pattern"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_pattern" title="Member Function get_pattern()">Member
4752            Function <code class="computeroutput"><span class="identifier">get_pattern</span><span class="special">()</span></code></a>
4753</h6></div></div></div>
4754<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
4755</pre>
4756<p>
4757              <span class="bold"><strong>Returns:</strong></span> the pattern to be used by
4758              default.
4759            </p>
4760</div>
4761<div class="section">
4762<div class="titlepage"><div><div><h6 class="title">
4763<a name="chrono.reference.io.duration_units_hpp.duration_units.get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_unit" title="Template Member Function get_unit(duration_style,duration&lt;Rep,Period&gt; const&amp;)">Template
4764            Member Function <code class="computeroutput"><span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">duration_style</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;</span> <span class="keyword">const</span><span class="special">&amp;)</span></code></a>
4765</h6></div></div></div>
4766<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4767<span class="identifier">string_type</span> <span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4768</pre>
4769<p>
4770              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">style</span><span class="special">,</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">(),</span> <span class="identifier">rt_ratio</span><span class="special">(</span><span class="identifier">Period</span><span class="special">()))</span></code>, the unit associated to this duration.
4771            </p>
4772</div>
4773<div class="section">
4774<div class="titlepage"><div><div><h6 class="title">
4775<a name="chrono.reference.io.duration_units_hpp.duration_units.get_n_d_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_unit" title="Template Member Function get_n_d_unit(duration_style,duration&lt;Rep,Period&gt; const&amp;)">Template
4776            Member Function <code class="computeroutput"><span class="identifier">get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</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;</span> <span class="keyword">const</span><span class="special">&amp;)</span></code></a>
4777</h6></div></div></div>
4778<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4779<span class="identifier">string_type</span> <span class="identifier">get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4780</pre>
4781<p>
4782              <span class="bold"><strong>Returns:</strong></span> get_n_d_unit(style, d.count(),
4783              rt_ratio(Period())), i.e. the [N/D] suffix unit associated to this
4784              duration.
4785            </p>
4786</div>
4787<div class="section">
4788<div class="titlepage"><div><div><h6 class="title">
4789<a name="chrono.reference.io.duration_units_hpp.duration_units.is_named_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.is_named_unit" title="Template Member Function is_named_unit()">Template
4790            Member Function <code class="computeroutput"><span class="identifier">is_named_unit</span><span class="special">()</span></code></a>
4791</h6></div></div></div>
4792<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
4793<span class="keyword">bool</span> <span class="identifier">is_named_unit</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
4794</pre>
4795<p>
4796              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span><span class="special">(</span><span class="identifier">Period</span><span class="special">()))</span></code>, true if the unit associated to
4797              the given Period is named, false otherwise.
4798            </p>
4799</div>
4800<div class="section">
4801<div class="titlepage"><div><div><h6 class="title">
4802<a name="chrono.reference.io.duration_units_hpp.duration_units.do_get_n_d_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_n_d_unit" title="Protected Member Function do_get_n_d_unit(duration_style,rt_ratio,intmax_t)">Protected
4803            Member Function <code class="computeroutput"><span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a>
4804</h6></div></div></div>
4805<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4806</pre>
4807<p>
4808              <span class="bold"><strong>Returns:</strong></span> the [N/D] suffix unit associated
4809              to this duration.
4810            </p>
4811</div>
4812<div class="section">
4813<div class="titlepage"><div><div><h6 class="title">
4814<a name="chrono.reference.io.duration_units_hpp.duration_units.do_get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_unit" title="Protected Member Function do_get_unit(duration_style,rt_ratio,intmax_t)">Protected
4815            Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a>
4816</h6></div></div></div>
4817<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
4818</pre>
4819<p>
4820              <span class="bold"><strong>Returns:</strong></span> the unit associated to this
4821              duration.
4822            </p>
4823</div>
4824<div class="section">
4825<div class="titlepage"><div><div><h6 class="title">
4826<a name="chrono.reference.io.duration_units_hpp.duration_units.do_is_named_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_is_named_unit" title="Protected Member Function do_is_named_unit(rt_ratio)">Protected
4827            Member Function <code class="computeroutput"><span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span><span class="special">)</span></code></a>
4828</h6></div></div></div>
4829<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span>
4830</pre>
4831<p>
4832              <span class="bold"><strong>Returns:</strong></span> true if the unit associated
4833              to the given Period is named, false otherwise.
4834            </p>
4835</div>
4836</div>
4837<div class="section">
4838<div class="titlepage"><div><div><h5 class="title">
4839<a name="chrono.reference.io.duration_units_hpp.duration_units_default"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default" title="Template Class duration_units_default">Template
4840          Class <code class="computeroutput"><span class="identifier">duration_units_default</span></code></a>
4841</h5></div></div></div>
4842<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
4843<span class="keyword">class</span> <span class="identifier">duration_units_default</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">duration_units</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span>
4844<span class="special">{</span>
4845<span class="keyword">protected</span><span class="special">:</span>
4846  <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pfs_</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="comment">// The default English facet has two plural forms.</span>
4847
4848<span class="keyword">public</span><span class="special">:</span>
4849  <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span>
4850  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span>
4851
4852  <span class="keyword">explicit</span> <span class="identifier">duration_units_default</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
4853  <span class="special">~</span><span class="identifier">duration_units_default</span><span class="special">();</span>
4854
4855  <span class="keyword">bool</span> <span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4856  <span class="keyword">bool</span> <span class="identifier">match_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">rt_ratio</span><span class="special">&amp;</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4857  <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
4858  <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
4859  <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
4860  <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
4861  <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
4862<span class="keyword">protected</span><span class="special">:</span>
4863  <span class="keyword">bool</span> <span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4864  <span class="identifier">string_type</span> <span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4865  <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4866
4867  <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_forms</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
4868  <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_form</span><span class="special">(</span><span class="identifier">int_least64_t</span> <span class="identifier">value</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4869
4870  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4871  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">60</span><span class="special">&gt;</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4872  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">3600</span><span class="special">&gt;</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4873  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">atto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4874  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">femto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4875  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">pico</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4876  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">nano</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4877  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">micro</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4878  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">milli</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4879  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">centi</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4880  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deci</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4881  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deca</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4882  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">hecto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4883  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">kilo</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4884  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">mega</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4885  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">giga</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4886  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">tera</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4887  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">peta</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4888  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">exa</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4889
4890  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">atto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4891  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">femto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4892  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">pico</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4893  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">nano</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4894  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">micro</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4895  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">milli</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4896  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">centi</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4897  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deci</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4898  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deca</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4899  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">hecto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4900  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">kilo</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4901  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">mega</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4902  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">giga</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4903  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">tera</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4904  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">peta</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4905  <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">exa</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4906<span class="special">};</span>
4907</pre>
4908<p>
4909            This class is used to define the strings for the default English. This
4910            facet names the units associated to the following periods:
4911          </p>
4912<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
4913<li class="listitem">
4914                <code class="computeroutput"><span class="identifier">atto</span></code>,
4915              </li>
4916<li class="listitem">
4917                <code class="computeroutput"><span class="identifier">femto</span></code>,
4918              </li>
4919<li class="listitem">
4920                <code class="computeroutput"><span class="identifier">pico</span></code>,
4921              </li>
4922<li class="listitem">
4923                <code class="computeroutput"><span class="identifier">nano</span></code>,
4924              </li>
4925<li class="listitem">
4926                <code class="computeroutput"><span class="identifier">micro</span></code>,
4927              </li>
4928<li class="listitem">
4929                <code class="computeroutput"><span class="identifier">milli</span></code>,
4930              </li>
4931<li class="listitem">
4932                <code class="computeroutput"><span class="identifier">centi</span></code>,
4933              </li>
4934<li class="listitem">
4935                <code class="computeroutput"><span class="identifier">deci</span></code>,
4936              </li>
4937<li class="listitem">
4938                ratio&lt;1&gt;,
4939              </li>
4940<li class="listitem">
4941                <code class="computeroutput"><span class="identifier">deca</span></code>,
4942              </li>
4943<li class="listitem">
4944                <code class="computeroutput"><span class="identifier">hecto</span></code>,
4945              </li>
4946<li class="listitem">
4947                <code class="computeroutput"><span class="identifier">kilo</span></code>,
4948              </li>
4949<li class="listitem">
4950                <code class="computeroutput"><span class="identifier">mega</span></code>,
4951              </li>
4952<li class="listitem">
4953                <code class="computeroutput"><span class="identifier">giga</span></code>,
4954              </li>
4955<li class="listitem">
4956                <code class="computeroutput"><span class="identifier">tera</span></code>,
4957              </li>
4958<li class="listitem">
4959                <code class="computeroutput"><span class="identifier">peta</span></code>,
4960              </li>
4961<li class="listitem">
4962                <code class="computeroutput"><span class="identifier">exa</span></code>,
4963              </li>
4964<li class="listitem">
4965                ratio&lt;60&gt; and
4966              </li>
4967<li class="listitem">
4968                ratio&lt;3600&gt;.
4969              </li>
4970</ul></div>
4971<div class="section">
4972<div class="titlepage"><div><div><h6 class="title">
4973<a name="chrono.reference.io.duration_units_hpp.duration_units_default.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.c" title="Constructor duration_units_default()">Constructor
4974            <code class="computeroutput"><span class="identifier">duration_units_default</span><span class="special">()</span></code></a>
4975</h6></div></div></div>
4976<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_units_default</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
4977</pre>
4978<p>
4979              Construct a duration_units_default facet.
4980            </p>
4981<p>
4982              <span class="bold"><strong>Parameters:</strong></span>
4983            </p>
4984<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4985                  <span class="bold"><strong>refs:</strong></span> references
4986                </li></ul></div>
4987<p>
4988              <span class="bold"><strong>Effects:</strong></span> Construct a duration_units_default
4989              facet. If the <code class="computeroutput"><span class="identifier">refs</span></code>
4990              argument is <code class="computeroutput"><span class="number">0</span></code> then destruction
4991              of the object is delegated to the locale, or locales, containing it.
4992              This allows the user to ignore lifetime management issues. On the other
4993              had, if <code class="computeroutput"><span class="identifier">refs</span></code> is <code class="computeroutput"><span class="number">1</span></code> then the object must be explicitly
4994              deleted; the locale will not do so. In this case, the object can be
4995              maintained across the lifetime of multiple locales.
4996            </p>
4997</div>
4998<div class="section">
4999<div class="titlepage"><div><div><h6 class="title">
5000<a name="chrono.reference.io.duration_units_hpp.duration_units_default.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.d" title="Destructor ~duration_units_default()">Destructor
5001            <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_units_default</span><span class="special">()</span></code></a>
5002</h6></div></div></div>
5003<pre class="programlisting"><span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">duration_units_default</span><span class="special">();</span>
5004</pre>
5005<p>
5006              <span class="bold"><strong>Effects:</strong></span> Destroys the facet.
5007            </p>
5008</div>
5009<div class="section">
5010<div class="titlepage"><div><div><h6 class="title">
5011<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_start" title="Member Function get_n_d_valid_units_start()">Member
5012            Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span></code></a>
5013</h6></div></div></div>
5014<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
5015</pre>
5016<p>
5017              <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
5018              [N/D] units.
5019            </p>
5020</div>
5021<div class="section">
5022<div class="titlepage"><div><div><h6 class="title">
5023<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_end" title="Member Function get_n_d_valid_units_end()">Member
5024            Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span></code></a>
5025</h6></div></div></div>
5026<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
5027</pre>
5028<p>
5029              <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
5030              [N/D] units.
5031            </p>
5032</div>
5033<div class="section">
5034<div class="titlepage"><div><div><h6 class="title">
5035<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_start" title="Member Function get_valid_units_start()">Member
5036            Function <code class="computeroutput"><span class="identifier">get_valid_units_start</span><span class="special">()</span></code></a>
5037</h6></div></div></div>
5038<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
5039</pre>
5040<p>
5041              <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
5042              units, symbol or prefix with its different plural forms.
5043            </p>
5044</div>
5045<div class="section">
5046<div class="titlepage"><div><div><h6 class="title">
5047<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_end" title="Member Function get_valid_units_end()">Member
5048            Function <code class="computeroutput"><span class="identifier">get_valid_units_end</span><span class="special">()</span></code></a>
5049</h6></div></div></div>
5050<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
5051</pre>
5052<p>
5053              <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
5054              units.
5055            </p>
5056</div>
5057<div class="section">
5058<div class="titlepage"><div><div><h6 class="title">
5059<a name="chrono.reference.io.duration_units_hpp.duration_units_default.match_n_d_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.match_n_d_valid_unit" title="Member Function match_n_d_valid_unit(const string_type*)">Member
5060            Function <code class="computeroutput"><span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*)</span></code></a>
5061</h6></div></div></div>
5062<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5063</pre>
5064<p>
5065              <span class="bold"><strong>Parameters:</strong></span>
5066            </p>
5067<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
5068                  <span class="bold"><strong>k:</strong></span> the found pointer to the [N/D]
5069                  unit.
5070                </li></ul></div>
5071<p>
5072              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
5073              if <code class="computeroutput"><span class="identifier">k</span></code> matches a valid
5074              unit.
5075            </p>
5076</div>
5077<div class="section">
5078<div class="titlepage"><div><div><h6 class="title">
5079<a name="chrono.reference.io.duration_units_hpp.duration_units_default.match_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.match_valid_unit" title="Member Function match_valid_unit(const string_type*,rt_ratio&amp;)">Member
5080            Function <code class="computeroutput"><span class="identifier">match_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*,</span><span class="identifier">rt_ratio</span><span class="special">&amp;)</span></code></a>
5081</h6></div></div></div>
5082<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">match_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">rt_ratio</span><span class="special">&amp;</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5083</pre>
5084<p>
5085              <span class="bold"><strong>Parameters:</strong></span>
5086            </p>
5087<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
5088                  <span class="bold"><strong>k:</strong></span> the found pointer to the unit.
5089                </li></ul></div>
5090<p>
5091              <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rt</span></code>
5092              is set to the valid Period when the <code class="computeroutput"><span class="identifier">k</span></code>
5093              matches a valid unit. <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">k</span></code>
5094              matches a valid unit.
5095            </p>
5096</div>
5097<div class="section">
5098<div class="titlepage"><div><div><h6 class="title">
5099<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_pattern"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_pattern" title="Member Function get_pattern()">Member
5100            Function <code class="computeroutput"><span class="identifier">get_pattern</span><span class="special">()</span></code></a>
5101</h6></div></div></div>
5102<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
5103</pre>
5104<p>
5105              <span class="bold"><strong>Returns:</strong></span> the pattern to be used by
5106              default.
5107            </p>
5108</div>
5109<div class="section">
5110<div class="titlepage"><div><div><h6 class="title">
5111<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_n_d_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_n_d_unit" title="Protected Member Function do_get_n_d_unit(duration_style,rt_ratio,intmax_t)">Protected
5112            Member Function <code class="computeroutput"><span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a>
5113</h6></div></div></div>
5114<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5115</pre>
5116<p>
5117              <span class="bold"><strong>Returns:</strong></span> the [N/D] suffix unit associated
5118              to this duration.
5119            </p>
5120</div>
5121<div class="section">
5122<div class="titlepage"><div><div><h6 class="title">
5123<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit" title="Protected Member Function do_get_unit(duration_style,rt_ratio,intmax_t)">Protected
5124            Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a>
5125</h6></div></div></div>
5126<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5127</pre>
5128<p>
5129              <span class="bold"><strong>Returns:</strong></span> the unit associated to this
5130              duration.
5131            </p>
5132</div>
5133<div class="section">
5134<div class="titlepage"><div><div><h6 class="title">
5135<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_is_named_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_is_named_unit" title="Protected Member Function do_is_named_unit(rt_ratio)">Protected
5136            Member Function <code class="computeroutput"><span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span><span class="special">)</span></code></a>
5137</h6></div></div></div>
5138<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5139</pre>
5140<p>
5141              <span class="bold"><strong>Returns:</strong></span> true if the unit associated
5142              to the given Period is named, false otherwise.
5143            </p>
5144</div>
5145<div class="section">
5146<div class="titlepage"><div><div><h6 class="title">
5147<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_forms"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_forms" title="Protected Member Function do_get_plural_forms()">Protected
5148            Member Function <code class="computeroutput"><span class="identifier">do_get_plural_forms</span><span class="special">()</span></code></a>
5149</h6></div></div></div>
5150<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_forms</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
5151</pre>
5152<p>
5153              <span class="bold"><strong>Returns:</strong></span> the number of associated
5154              plural forms this facet manages.
5155            </p>
5156</div>
5157<div class="section">
5158<div class="titlepage"><div><div><h6 class="title">
5159<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_form"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_form" title="Protected Member Function do_get_plural_form(int_least64_t)">Protected
5160            Member Function <code class="computeroutput"><span class="identifier">do_get_plural_form</span><span class="special">(</span><span class="identifier">int_least64_t</span><span class="special">)</span></code></a>
5161</h6></div></div></div>
5162<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_form</span><span class="special">(</span><span class="identifier">int_least64_t</span> <span class="identifier">value</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5163</pre>
5164<p>
5165              Gets the associated plural form.
5166            </p>
5167<p>
5168              <span class="bold"><strong>Parameters:</strong></span>
5169            </p>
5170<p>
5171              <span class="bold"><strong>value:</strong></span> the duration representation
5172            </p>
5173<p>
5174              <span class="bold"><strong>Returns:</strong></span> the plural form associated
5175              to the <code class="computeroutput"><span class="identifier">value</span></code> parameter.
5176              In English there are 2 plural forms
5177            </p>
5178<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5179<li class="listitem">
5180                  0 singular (-1 or 1)
5181                </li>
5182<li class="listitem">
5183                  1 plural for all others
5184                </li>
5185</ul></div>
5186</div>
5187<div class="section">
5188<div class="titlepage"><div><div><h6 class="title">
5189<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_seconds"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_seconds" title="Protected Member Function do_get_unit(duration_style,ratio&lt;1&gt;,std::size_t)">Protected
5190            Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
5191</h6></div></div></div>
5192<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5193</pre>
5194<p>
5195              <span class="bold"><strong>Parameters:</strong></span>
5196            </p>
5197<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5198<li class="listitem">
5199                  <span class="bold"><strong>style:</strong></span> the duration style.
5200                </li>
5201<li class="listitem">
5202                  <span class="bold"><strong>period:</strong></span> the period associated
5203                  to the duration hours.
5204                </li>
5205<li class="listitem">
5206                  <span class="bold"><strong>pf:</strong></span> the requested plural form.
5207                </li>
5208</ul></div>
5209<p>
5210              <span class="bold"><strong>Returns:</strong></span> if style is symbol returns
5211              "s", otherwise if pf is 0 return "second", if pf
5212              is 1 "seconds"
5213            </p>
5214</div>
5215<div class="section">
5216<div class="titlepage"><div><div><h6 class="title">
5217<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_minutes"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_minutes" title="Protected Member Function do_get_unit(duration_style style,ratio&lt;60&gt;,std::size_t)">Protected
5218            Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span>
5219            <span class="identifier">style</span><span class="special">,</span><span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">60</span><span class="special">&gt;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
5220</h6></div></div></div>
5221<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">60</span><span class="special">&gt;</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5222</pre>
5223<p>
5224              <span class="bold"><strong>Parameters:</strong></span>
5225            </p>
5226<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5227<li class="listitem">
5228                  <span class="bold"><strong>style:</strong></span> the duration style.
5229                </li>
5230<li class="listitem">
5231                  <span class="bold"><strong>period:</strong></span> the period associated
5232                  to the duration hours.
5233                </li>
5234<li class="listitem">
5235                  <span class="bold"><strong>pf:</strong></span> the requested plural form.
5236                </li>
5237</ul></div>
5238<p>
5239              <span class="bold"><strong>Returns:</strong></span> if style is symbol returns
5240              "min", otherwise if pf is 0 return "minute", if
5241              pf is 1 "minutes"
5242            </p>
5243</div>
5244<div class="section">
5245<div class="titlepage"><div><div><h6 class="title">
5246<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_hours"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_hours" title="Protected Member Function do_get_unit(duration_style,ratio&lt;3600&gt;,std::size_t)">Protected
5247            Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">3600</span><span class="special">&gt;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
5248</h6></div></div></div>
5249<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special">&lt;</span><span class="number">3600</span><span class="special">&gt;</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5250</pre>
5251<p>
5252              <span class="bold"><strong>Parameters:</strong></span>
5253            </p>
5254<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5255<li class="listitem">
5256                  <span class="bold"><strong>style:</strong></span> the duration style.
5257                </li>
5258<li class="listitem">
5259                  <span class="bold"><strong>period:</strong></span> the period associated
5260                  to the duration hours.
5261                </li>
5262<li class="listitem">
5263                  <span class="bold"><strong>pf:</strong></span> the requested plural form.
5264                </li>
5265</ul></div>
5266<p>
5267              <span class="bold"><strong>Returns:</strong></span> if style is symbol returns
5268              "h", otherwise if pf is 0 return "hour", if pf
5269              is 1 "hours"
5270            </p>
5271</div>
5272<div class="section">
5273<div class="titlepage"><div><div><h6 class="title">
5274<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_xxx"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_xxx" title="Protected Member Function do_get_unit(duration_style,Period,std::size_t)">Protected
5275            Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">Period</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
5276</h6></div></div></div>
5277<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">atto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5278<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">femto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5279<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">pico</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5280<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">nano</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5281<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">micro</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5282<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">milli</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5283<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">centi</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5284<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deci</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5285<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deca</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5286<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">hecto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5287<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">kilo</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5288<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">mega</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5289<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">giga</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5290<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">tera</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5291<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">peta</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5292<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">exa</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5293</pre>
5294<p>
5295              <span class="bold"><strong>Parameters:</strong></span>
5296            </p>
5297<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5298<li class="listitem">
5299                  <span class="bold"><strong>style:</strong></span> the duration style.
5300                </li>
5301<li class="listitem">
5302                  <span class="bold"><strong>u:</strong></span> the period tag atto.
5303                </li>
5304<li class="listitem">
5305                  <span class="bold"><strong>pf:</strong></span> the requested plural form.
5306                </li>
5307</ul></div>
5308<p>
5309              <span class="bold"><strong>Returns:</strong></span> the concatenation of the
5310              prefix associated to period <code class="computeroutput"><span class="identifier">u</span></code>
5311              + the one associated to seconds.
5312            </p>
5313</div>
5314<div class="section">
5315<div class="titlepage"><div><div><h6 class="title">
5316<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_ratio_prefix_xxx"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_ratio_prefix_xxx" title="Protected Member Function do_get_ratio_prefix(duration_style, Period)">Protected
5317            Member Function <code class="computeroutput"><span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">)</span></code></a>
5318</h6></div></div></div>
5319<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">atto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5320<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">femto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5321<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">pico</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5322<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">nano</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5323<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">micro</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5324<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">milli</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5325<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">centi</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5326<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deci</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5327<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deca</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5328<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">hecto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5329<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">kilo</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5330<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">mega</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5331<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">giga</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5332<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">tera</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5333<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">peta</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5334<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">exa</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5335</pre>
5336<p>
5337              <span class="bold"><strong>Parameters:</strong></span>
5338            </p>
5339<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5340<li class="listitem">
5341                  <span class="bold"><strong>style:</strong></span> the duration style.
5342                </li>
5343<li class="listitem">
5344                  <span class="bold"><strong>u:</strong></span> the period tag atto.
5345                </li>
5346</ul></div>
5347<p>
5348              <span class="bold"><strong>Returns:</strong></span> depending on the value of
5349              <code class="computeroutput"><span class="identifier">style</span></code> return the ratio_string
5350              symbol or prefix.
5351            </p>
5352</div>
5353</div>
5354</div>
5355<div class="section">
5356<div class="titlepage"><div><div><h4 class="title">
5357<a name="chrono.reference.io.duration_io_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp" title="Header &lt;boost/chrono/io/duration_io.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">io</span><span class="special">/</span><span class="identifier">duration_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
5358</h4></div></div></div>
5359<div class="toc"><dl class="toc">
5360<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_io_hpp.manipulators">I/O
5361          Manipulators</a></span></dt>
5362<dt><span class="section"><a href="reference.html#chrono.reference.io.duration_io_hpp.streams">I/O
5363          Streams Operations</a></span></dt>
5364</dl></div>
5365<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
5366  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
5367
5368    <span class="comment">// manipulators</span>
5369
5370    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.symbol_format" title="Non Member Function symbol_format(ios_base&amp;)"><code class="computeroutput"><span class="identifier">symbol_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
5371    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.name_format" title="Non Member Function name_format(ios_base&amp;)"><code class="computeroutput"><span class="identifier">name_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
5372    <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt" title="Template Class duration_fmt"><code class="computeroutput"><span class="identifier">duration_fmt</span></code></a><span class="special">;</span>
5373    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
5374    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5375    <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out" title="Member Function operator &lt;&lt;(basic_ostream&lt;&gt;&amp;, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">&lt;&lt;</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">duration_fmt</span> <span class="identifier">d</span><span class="special">);</span>
5376
5377    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
5378    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5379    <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in" title="Member Function operator &gt;&gt;(basic_istream&lt;&gt;&amp;, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">&gt;&gt;</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">duration_fmt</span> <span class="identifier">d</span><span class="special">);</span>
5380
5381
5382    <span class="comment">// duration I/O</span>
5383
5384    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
5385        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5386        <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_out" title="Member Function operator &lt;&lt;(basic_ostream&lt;&gt;&amp;, const duration&lt;&gt;&amp; d)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">&lt;&lt;</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
5387
5388    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
5389        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5390        <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_in" title="Member Function operator &lt;&lt;(basic_istream&lt;&gt;&amp;, const duration&lt;&gt;&amp; d)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">&gt;&gt;</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
5391
5392  <span class="special">}</span>
5393<span class="special">}</span>
5394</pre>
5395<div class="section">
5396<div class="titlepage"><div><div><h5 class="title">
5397<a name="chrono.reference.io.duration_io_hpp.manipulators"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators" title="I/O Manipulators">I/O
5398          Manipulators</a>
5399</h5></div></div></div>
5400<p>
5401            There is a parameterized manipulator that takes the duration_style as
5402            parameter. The symbol or name format can be easily chosen by streaming
5403            a <code class="computeroutput"><span class="identifier">symbol_format</span></code> or <code class="computeroutput"><span class="identifier">name_format</span></code> manipulators respectively.
5404          </p>
5405<div class="section">
5406<div class="titlepage"><div><div><h6 class="title">
5407<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt" title="Template Class duration_fmt">Template
5408            Class <code class="computeroutput"><span class="identifier">duration_fmt</span></code></a>
5409</h6></div></div></div>
5410<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">duration_fmt</span>
5411<span class="special">{</span>
5412<span class="keyword">public</span><span class="special">:</span>
5413
5414  <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.c1" title="Constructor duration_fmt(duration_style)"><code class="computeroutput"><span class="identifier">duration_fmt</span></code></a><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <span class="identifier">style</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
5415
5416<span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span>
5417  <span class="keyword">explicit</span>
5418  <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style" title="Member Function operator duration_style()"><code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">duration_style</span></code></a><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
5419<span class="preprocessor">#endif</span>
5420  <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style" title="Member Function operator duration_style()"><code class="computeroutput"><span class="identifier">get_duration_style</span></code></a><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
5421<span class="special">};</span>
5422
5423<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
5424<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5425<a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out" title="Member Function operator &lt;&lt;(basic_ostream&lt;&gt;&amp;, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">&lt;&lt;</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">duration_fmt</span> <span class="identifier">d</span><span class="special">);</span>
5426
5427<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
5428<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5429<a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in" title="Member Function operator &gt;&gt;(basic_istream&lt;&gt;&amp;, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">&gt;&gt;</span></code></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">duration_fmt</span> <span class="identifier">d</span><span class="special">);</span>
5430</pre>
5431<div class="section">
5432<div class="titlepage"><div><div><h6 class="title">
5433<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.c1"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.c1" title="Constructor duration_fmt(duration_style)">Constructor
5434              <code class="computeroutput"><span class="identifier">duration_fmt</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">)</span></code></a>
5435</h6></div></div></div>
5436<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_fmt</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">f</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
5437</pre>
5438<p>
5439                <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt" title="Template Class duration_fmt"><code class="computeroutput"><span class="identifier">duration_fmt</span></code></a> by storing
5440                <code class="computeroutput"><span class="identifier">f</span></code>.
5441              </p>
5442<p>
5443                <span class="bold"><strong>Post Conditions:</strong></span> <code class="computeroutput"><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">duration_style</span><span class="special">&gt;(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">f</span></code>.
5444              </p>
5445</div>
5446<div class="section">
5447<div class="titlepage"><div><div><h6 class="title">
5448<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style" title="Member Function operator duration_style()">Member
5449              Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">duration_style</span><span class="special">()</span></code></a>
5450</h6></div></div></div>
5451<pre class="programlisting"><span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="identifier">duration_style</span><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
5452<span class="identifier">duration_style</span> <span class="identifier">get_duration_style</span><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
5453</pre>
5454<p>
5455                <span class="bold"><strong>Returns:</strong></span>: The stored <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt" title="Template Class duration_fmt"><code class="computeroutput"><span class="identifier">duration_fmt</span></code></a> <code class="computeroutput"><span class="identifier">f</span></code>.
5456              </p>
5457</div>
5458<div class="section">
5459<div class="titlepage"><div><div><h6 class="title">
5460<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out" title="Member Function operator &lt;&lt;(basic_ostream&lt;&gt;&amp;, duration_fmt)">Member
5461              Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special">&lt;&lt;(</span><span class="identifier">basic_ostream</span><span class="special">&lt;&gt;&amp;,</span>
5462              <span class="identifier">duration_fmt</span><span class="special">)</span></code></a>
5463</h6></div></div></div>
5464<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
5465  <span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5466  <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">duration_fmt</span> <span class="identifier">d</span><span class="special">);</span>
5467</pre>
5468<p>
5469                <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_duration_style</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a><span class="special">&gt;(</span><span class="identifier">d</span><span class="special">))))</span></code>.
5470              </p>
5471<p>
5472                <span class="bold"><strong>Returns:</strong></span>: <code class="computeroutput"><span class="identifier">s</span></code>.
5473              </p>
5474</div>
5475<div class="section">
5476<div class="titlepage"><div><div><h6 class="title">
5477<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in" title="Member Function operator &gt;&gt;(basic_istream&lt;&gt;&amp;, duration_fmt)">Member
5478              Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special">&gt;&gt;(</span><span class="identifier">basic_istream</span><span class="special">&lt;&gt;&amp;,</span>
5479              <span class="identifier">duration_fmt</span><span class="special">)</span></code></a>
5480</h6></div></div></div>
5481<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">&gt;</span>
5482  <span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5483  <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">duration_fmt</span> <span class="identifier">d</span><span class="special">);</span>
5484</pre>
5485<p>
5486                <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_duration_style</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a><span class="special">&gt;(</span><span class="identifier">d</span><span class="special">))))</span></code>.
5487              </p>
5488<p>
5489                <span class="bold"><strong>Returns:</strong></span>: <code class="computeroutput"><span class="identifier">s</span></code>.
5490              </p>
5491</div>
5492</div>
5493<div class="section">
5494<div class="titlepage"><div><div><h6 class="title">
5495<a name="chrono.reference.io.duration_io_hpp.manipulators.symbol_format"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.symbol_format" title="Non Member Function symbol_format(ios_base&amp;)">Non
5496            Member Function <code class="computeroutput"><span class="identifier">symbol_format</span><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&amp;)</span></code></a>
5497</h6></div></div></div>
5498<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.symbol_format" title="Non Member Function symbol_format(ios_base&amp;)"><code class="computeroutput"><span class="identifier">symbol_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
5499</pre>
5500<p>
5501              <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_duration_style</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a><span class="special">::</span><span class="identifier">symbol</span><span class="special">)</span></code>.
5502            </p>
5503<p>
5504              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">ios</span></code>
5505            </p>
5506</div>
5507<div class="section">
5508<div class="titlepage"><div><div><h6 class="title">
5509<a name="chrono.reference.io.duration_io_hpp.manipulators.name_format"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.name_format" title="Non Member Function name_format(ios_base&amp;)">Non
5510            Member Function <code class="computeroutput"><span class="identifier">name_format</span><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&amp;)</span></code></a>
5511</h6></div></div></div>
5512<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.name_format" title="Non Member Function name_format(ios_base&amp;)"><code class="computeroutput"><span class="identifier">name_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">);</span>
5513</pre>
5514<p>
5515              <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_duration_style</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a><span class="special">::</span><span class="identifier">prefix</span><span class="special">)</span></code>.
5516            </p>
5517<p>
5518              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">ios</span></code>
5519            </p>
5520</div>
5521</div>
5522<div class="section">
5523<div class="titlepage"><div><div><h5 class="title">
5524<a name="chrono.reference.io.duration_io_hpp.streams"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams" title="I/O Streams Operations">I/O
5525          Streams Operations</a>
5526</h5></div></div></div>
5527<div class="section">
5528<div class="titlepage"><div><div><h6 class="title">
5529<a name="chrono.reference.io.duration_io_hpp.streams.duration__op_out"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_out" title="Member Function operator &lt;&lt;(basic_ostream&lt;&gt;&amp;, const duration&lt;&gt;&amp; d)">Member
5530            Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special">&lt;&lt;(</span><span class="identifier">basic_ostream</span><span class="special">&lt;&gt;&amp;,</span>
5531            <span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&lt;&gt;&amp;</span> <span class="identifier">d</span><span class="special">)</span></code></a>
5532</h6></div></div></div>
5533<p>
5534              Any <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> can be streamed out
5535              to a <code class="computeroutput"><span class="identifier">basic_ostream</span></code>.
5536              The run-time value of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a> is formatted according
5537              to the rules and current format settings for <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><code class="computeroutput"><span class="special">::</span><span class="identifier">rep</span></code> and the <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units"><code class="computeroutput"><span class="identifier">duration_units</span></code></a> facet.
5538            </p>
5539<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
5540    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5541    <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</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>
5542</pre>
5543<p>
5544              <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted output
5545              function. After constructing a sentry object, if the sentry converts
5546              to true, calls to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put" title="Member Function put(iter_type,std::ios_base&amp;,char_type,duration&lt;Rep,Period&gt; const&amp;, const CharT*,const CharT*)"><code class="computeroutput"><span class="identifier">put</span></code></a><span class="special">(</span><span class="identifier">os</span><span class="special">,</span><span class="identifier">os</span><span class="special">,</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">fill</span><span class="special">(),</span><span class="identifier">d</span><span class="special">)</span></code>
5547              where <code class="computeroutput"><span class="identifier">facet</span></code> is the
5548              <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
5549              facet associated to <code class="computeroutput"><span class="identifier">os</span></code>
5550              or a new created instance of the default <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
5551              facet.
5552            </p>
5553<p>
5554              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>.
5555            </p>
5556</div>
5557<div class="section">
5558<div class="titlepage"><div><div><h6 class="title">
5559<a name="chrono.reference.io.duration_io_hpp.streams.duration__op_in"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_in" title="Member Function operator &lt;&lt;(basic_istream&lt;&gt;&amp;, const duration&lt;&gt;&amp; d)">Member
5560            Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special">&lt;&lt;(</span><span class="identifier">basic_istream</span><span class="special">&lt;&gt;&amp;,</span>
5561            <span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&lt;&gt;&amp;</span> <span class="identifier">d</span><span class="special">)</span></code></a>
5562</h6></div></div></div>
5563<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</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>
5564    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
5565    <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</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>
5566</pre>
5567<p>
5568              <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted input
5569              function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code>
5570              object, if the <code class="computeroutput"><span class="identifier">sentry</span></code>
5571              converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls
5572              to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get" title="Template Member Function get(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,duration&lt;Rep,Period&gt;&amp;,const char_type*, const char_type*) const"><code class="computeroutput"><span class="identifier">get</span></code></a><span class="special">(</span><span class="identifier">is</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span>
5573              <span class="identifier">Traits</span><span class="special">&gt;(),</span>
5574              <span class="identifier">is</span><span class="special">,</span>
5575              <span class="identifier">err</span><span class="special">,</span>
5576              <span class="identifier">d</span><span class="special">)</span></code>
5577              where <code class="computeroutput"><span class="identifier">facet</span></code> is the
5578              <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
5579              facet associated to <code class="computeroutput"><span class="identifier">is</span></code>
5580              or a new created instance of the default <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
5581              facet.
5582            </p>
5583<p>
5584              If any step fails, calls <code class="computeroutput"><span class="identifier">os</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span>
5585              <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">)</span></code>.
5586            </p>
5587<p>
5588              <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code>
5589            </p>
5590</div>
5591</div>
5592</div>
5593<div class="section">
5594<div class="titlepage"><div><div><h4 class="title">
5595<a name="chrono.reference.io.time_point_get_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp" title="Header &lt;boost/chrono/io/time_point_get.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">io</span><span class="special">/</span><span class="identifier">time_point_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
5596</h4></div></div></div>
5597<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get">Template
5598          Class <code class="computeroutput"><span class="identifier">time_point_get</span></code></a></span></dt></dl></div>
5599<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
5600  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
5601    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
5602    <span class="keyword">class</span> <span class="identifier">time_point_get</span><span class="special">;</span>
5603  <span class="special">}</span>
5604<span class="special">}</span>
5605</pre>
5606<div class="section">
5607<div class="titlepage"><div><div><h5 class="title">
5608<a name="chrono.reference.io.time_point_get_hpp.time_point_get"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get" title="Template Class time_point_get">Template
5609          Class <code class="computeroutput"><span class="identifier">time_point_get</span></code></a>
5610</h5></div></div></div>
5611<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
5612<span class="keyword">class</span> <span class="identifier">time_point_get</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">facet</span>
5613<span class="special">{</span>
5614<span class="keyword">public</span><span class="special">:</span>
5615  <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> <span class="comment">// Type of character the facet is instantiated on.</span>
5616  <span class="keyword">typedef</span> <span class="identifier">InputIterator</span> <span class="identifier">iter_type</span><span class="special">;</span> <span class="comment">// Type of iterator used to scan the character buffer.</span>
5617
5618  <span class="keyword">explicit</span> <span class="identifier">__time_point_get_c</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
5619
5620  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
5621  <span class="identifier">iter_type</span> <span class="identifier">__time_point_get_get</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
5622      <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="special">&amp;</span><span class="identifier">tp</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">char_type</span> <span class="special">*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">char_type</span> <span class="special">*</span><span class="identifier">pat_end</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5623
5624  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
5625  <span class="identifier">iter_type</span> <span class="identifier">__time_point_get_get2</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
5626      <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="special">&amp;</span><span class="identifier">tp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5627
5628  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
5629  <span class="identifier">iter_type</span> <span class="identifier">__time_point_get_get_duration</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
5630      <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">const</span><span class="special">;</span>
5631
5632  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">&gt;</span>
5633  <span class="identifier">iter_type</span> <span class="identifier">__time_point_get_get_epoch</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5634
5635  <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span>
5636
5637  <span class="identifier">__time_point_get_d</span><span class="special">();</span>
5638<span class="special">};</span>
5639</pre>
5640<p>
5641            <code class="computeroutput"><span class="identifier">time_point_get</span></code> is used
5642            to parse a character sequence, extracting the duration and the epoch
5643            into a class <code class="computeroutput"><span class="identifier">time_point</span></code>.
5644          </p>
5645<p>
5646            The pattern can contain the format specifiers <code class="computeroutput"><span class="special">%</span><span class="identifier">d</span></code> and <code class="computeroutput"><span class="special">%</span><span class="identifier">e</span></code> in any order.
5647          </p>
5648<p>
5649            User confirmation is required for reliable parsing of user-entered durations,
5650            but machine-generated formats can be parsed reliably. This allows parsers
5651            to be aggressive about interpreting user variations on standard formats.
5652          </p>
5653<p>
5654            If the end iterator is reached during parsing the member function sets
5655            <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">eofbit</span></code> in <code class="computeroutput"><span class="identifier">err</span></code>.
5656          </p>
5657<div class="section">
5658<div class="titlepage"><div><div><h6 class="title">
5659<a name="chrono.reference.io.time_point_get_hpp.time_point_get.c"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.c" title="Constructor time_point_get(size_t)">Constructor
5660            <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
5661</h6></div></div></div>
5662<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_point_get</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span><span class="special">);</span>
5663</pre>
5664<p>
5665              Constructs a __time_point_get facet.
5666            </p>
5667<p>
5668              <span class="bold"><strong>Parameters:</strong></span>
5669            </p>
5670<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
5671                  <span class="bold"><strong>refs:</strong></span> references
5672                </li></ul></div>
5673<p>
5674              <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet. If the
5675              <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated
5676              to the locale, or locales, containing it. This allows the user to ignore
5677              lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code>
5678              is <code class="computeroutput"><span class="number">1</span></code> then the object must
5679              be explicitly deleted; <code class="computeroutput"><span class="identifier">locale</span></code>
5680              will not do so. In this case, the object can be maintained across the
5681              lifetime of multiple locales.
5682            </p>
5683</div>
5684<div class="section">
5685<div class="titlepage"><div><div><h6 class="title">
5686<a name="chrono.reference.io.time_point_get_hpp.time_point_get.d"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.d" title="Destructor ~time_point_get()">Destructor
5687            <code class="computeroutput"><span class="special">~</span><span class="identifier">time_point_get</span><span class="special">()</span></code></a>
5688</h6></div></div></div>
5689<pre class="programlisting"><span class="special">~</span><span class="identifier">time_point_get</span><span class="special">();</span>
5690</pre>
5691<p>
5692              <span class="bold"><strong>Effects:</strong></span> Destroy the facet.
5693            </p>
5694</div>
5695<div class="section">
5696<div class="titlepage"><div><div><h6 class="title">
5697<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get" title="Template Member Function get(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,time_point&lt;Clock, Duration&gt;&amp;,const CharT*,const CharT*)">Template
5698            Member Function <code class="computeroutput"><span class="identifier">get</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</span><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;&amp;,</span><span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*,</span><span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*)</span></code></a>
5699</h6></div></div></div>
5700<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
5701<span class="identifier">iter_type</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
5702    <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="special">&amp;</span><span class="identifier">tp</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">char_type</span> <span class="special">*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">char_type</span> <span class="special">*</span><span class="identifier">pat_end</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5703</pre>
5704<p>
5705              <span class="bold"><strong>Parameters:</strong></span>
5706            </p>
5707<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5708<li class="listitem">
5709                  <span class="bold"><strong>s:</strong></span> start input stream iterator
5710                </li>
5711<li class="listitem">
5712                  <span class="bold"><strong>end:</strong></span> end input stream iterator
5713                </li>
5714<li class="listitem">
5715                  <span class="bold"><strong>ios:</strong></span> a reference to a <code class="computeroutput"><span class="identifier">ios_base</span></code>
5716                </li>
5717<li class="listitem">
5718                  <span class="bold"><strong>err:</strong></span> the <code class="computeroutput"><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span></code>
5719                </li>
5720<li class="listitem">
5721                  <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
5722                </li>
5723<li class="listitem">
5724                  <span class="bold"><strong>pattern:</strong></span> begin of the formatting
5725                  pattern
5726                </li>
5727<li class="listitem">
5728                  <span class="bold"><strong>pat_end:</strong></span> end of the formatting
5729                  pattern
5730                </li>
5731</ul></div>
5732<p>
5733              <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code>
5734              must be a valid range.
5735            </p>
5736<p>
5737              <span class="bold"><strong>Effects:</strong></span>: The function starts by evaluating
5738              <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span>
5739              <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code>. It then enters a loop, reading
5740              zero or more characters from <code class="computeroutput"><span class="identifier">s</span></code>
5741              at each iteration. Unless otherwise specified below, the loop terminates
5742              when the first of the following conditions holds:
5743            </p>
5744<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5745<li class="listitem">
5746                  The expression <code class="computeroutput"><span class="identifier">pattern</span>
5747                  <span class="special">==</span> <span class="identifier">pat_end</span></code>
5748                  evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
5749                </li>
5750<li class="listitem">
5751                  The expression <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code>
5752                  evaluates to <code class="computeroutput"><span class="keyword">false</span></code>.
5753                </li>
5754<li class="listitem">
5755                  The expression <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span> <span class="identifier">end</span></code>
5756                  evaluates to <code class="computeroutput"><span class="keyword">true</span></code>,
5757                  in which case the function evaluates <code class="computeroutput"><span class="identifier">err</span>
5758                  <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">eofbit</span>
5759                  <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>.
5760                </li>
5761<li class="listitem">
5762                  The next element of pattern is equal to <code class="computeroutput"><span class="char">'%'</span></code>,
5763                  followed by a conversion specifier character, the functions <code class="computeroutput"><span class="identifier">get_duration</span></code> or <code class="computeroutput"><span class="identifier">get_epoch</span></code> are called depending
5764                  on whether the format is <code class="computeroutput"><span class="char">'d'</span></code>
5765                  or <code class="computeroutput"><span class="char">'e'</span></code>. If the number
5766                  of elements in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code>
5767                  is not sufficient to unambiguously determine whether the conversion
5768                  specification is complete and valid, the function evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">|=</span>
5769                  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise, the function
5770                  evaluates <code class="computeroutput"><span class="identifier">s</span> <span class="special">=</span>
5771                  <span class="identifier">do_get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>
5772                  <span class="identifier">end</span><span class="special">,</span>
5773                  <span class="identifier">ios</span><span class="special">,</span>
5774                  <span class="identifier">err</span><span class="special">,</span>
5775                  <span class="identifier">d</span><span class="special">)</span></code>.
5776                  If <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span>
5777                  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code> holds after the evaluation
5778                  of the expression, the function increments pattern to point just
5779                  past the end of the conversion specification and continues looping.
5780                </li>
5781<li class="listitem">
5782                  The expression <code class="computeroutput"><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> evaluates to <code class="computeroutput"><span class="keyword">true</span></code>,
5783                  in which case the function first increments <code class="computeroutput"><span class="identifier">pattern</span></code>
5784                  until <code class="computeroutput"><span class="identifier">pattern</span> <span class="special">==</span> <span class="identifier">pat_end</span>
5785                  <span class="special">||</span> <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span>
5786                  <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code>
5787                  evaluates to <code class="computeroutput"><span class="keyword">true</span></code>,
5788                  then advances <code class="computeroutput"><span class="identifier">s</span></code>
5789                  until <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span>
5790                  <span class="identifier">end</span> <span class="special">||</span>
5791                  <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>,
5792                  and finally resumes looping.
5793                </li>
5794<li class="listitem">
5795                  The next character read from <code class="computeroutput"><span class="identifier">s</span></code>
5796                  matches the element pointed to by pattern in a case-insensitive
5797                  comparison, in which case the function evaluates <code class="computeroutput"><span class="special">++</span><span class="identifier">pattern</span></code>,
5798                  <code class="computeroutput"><span class="special">++</span><span class="identifier">s</span></code>
5799                  and continues looping. Otherwise, the function evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span>
5800                  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>.
5801                </li>
5802</ul></div>
5803<p>
5804              <span class="bold"><strong>Returns:</strong></span> An iterator pointing just
5805              beyond the last character that can be determined to be part of a valid
5806              time_point.
5807            </p>
5808</div>
5809<div class="section">
5810<div class="titlepage"><div><div><h6 class="title">
5811<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get2"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get2" title="Template Member Function get(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,time_point&lt;Clock,Duration&gt;&amp;)">Template
5812            Member Function <code class="computeroutput"><span class="identifier">get</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</span><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">&gt;&amp;)</span></code></a>
5813</h6></div></div></div>
5814<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
5815<span class="identifier">iter_type</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
5816    <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="special">&amp;</span><span class="identifier">tp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5817</pre>
5818<p>
5819              <span class="bold"><strong>Parameters:</strong></span>
5820            </p>
5821<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5822<li class="listitem">
5823                  <span class="bold"><strong>s:</strong></span> start input stream iterator
5824                </li>
5825<li class="listitem">
5826                  <span class="bold"><strong>end:</strong></span> end input stream iterator
5827                </li>
5828<li class="listitem">
5829                  <span class="bold"><strong>ios:</strong></span> a reference to a <code class="computeroutput"><span class="identifier">ios_base</span></code>
5830                </li>
5831<li class="listitem">
5832                  <span class="bold"><strong>err:</strong></span> the <code class="computeroutput"><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span></code>
5833                </li>
5834<li class="listitem">
5835                  <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
5836                </li>
5837</ul></div>
5838<p>
5839              <span class="bold"><strong>Effects:</strong></span> Stores the duration pattern
5840              from the <code class="computeroutput"><span class="identifier">duration_unit</span></code>
5841              facet in let say <code class="computeroutput"><span class="identifier">str</span></code>.
5842              Last as if
5843            </p>
5844<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
5845</pre>
5846<p>
5847              <span class="bold"><strong>Returns:</strong></span> An iterator pointing just
5848              beyond the last character that can be determined to be part of a valid
5849              name.
5850            </p>
5851</div>
5852<div class="section">
5853<div class="titlepage"><div><div><h6 class="title">
5854<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get_duration"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get_duration" title="Template Member Function get_duration(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;,duration&lt;Rep,Period&gt;&amp;)">Template
5855            Member Function <code class="computeroutput"><span class="identifier">get_duration</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;,</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></code></a>
5856</h6></div></div></div>
5857<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
5858<span class="identifier">iter_type</span> <span class="identifier">get_duration</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">,</span>
5859    <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">const</span><span class="special">;</span>
5860</pre>
5861<p>
5862              <span class="bold"><strong>Effects:</strong></span> As if
5863            </p>
5864<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">facet</span><span class="special">.</span><span class="identifier">get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">d</span><span class="special">);</span>
5865</pre>
5866<p>
5867              where <code class="computeroutput"><span class="identifier">facet</span></code> is either
5868              the <code class="computeroutput"><span class="identifier">duration_get</span></code> facet
5869              associated to the <code class="computeroutput"><span class="identifier">ios</span></code>
5870              or an instance of the default <code class="computeroutput"><span class="identifier">duration_get</span></code>
5871              facet.
5872            </p>
5873<p>
5874              <span class="bold"><strong>Returns:</strong></span> An iterator pointing just
5875              beyond the last character that can be determined to be part of a valid
5876              duration.
5877            </p>
5878</div>
5879<div class="section">
5880<div class="titlepage"><div><div><h6 class="title">
5881<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get_epoch"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get_epoch" title="Template Member Function get_epoch(iter_type,iter_type,std::ios_base&amp;,std::ios_base::iostate&amp;)">Template
5882            Member Function <code class="computeroutput"><span class="identifier">get_epoch</span><span class="special">(</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">iter_type</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;)</span></code></a>
5883</h6></div></div></div>
5884<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">&gt;</span>
5885<span class="identifier">iter_type</span> <span class="identifier">get_epoch</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">iter_type</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span><span class="special">&amp;</span> <span class="identifier">err</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5886</pre>
5887<p>
5888              <span class="bold"><strong>Effects:</strong></span> Let <code class="computeroutput"><span class="identifier">facet</span></code>
5889              be the <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet associated
5890              to <code class="computeroutput"><span class="identifier">ios</span></code> or a new instance
5891              of the default __time_point_units_default facet. Let <code class="computeroutput"><span class="identifier">epoch</span></code> be the epoch string associated
5892              to the <code class="computeroutput"><span class="identifier">Clock</span></code> using
5893              this facet. Scans <code class="computeroutput"><span class="identifier">s</span></code>
5894              to match <code class="computeroutput"><span class="identifier">epoch</span></code> or
5895              <code class="computeroutput"><span class="identifier">end</span></code> is reached.
5896            </p>
5897<p>
5898              If not match before the <code class="computeroutput"><span class="identifier">end</span></code>
5899              is reached <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code> is set in <code class="computeroutput"><span class="identifier">err</span></code>.
5900              If <code class="computeroutput"><span class="identifier">end</span></code> is reached
5901              <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code> is set in <code class="computeroutput"><span class="identifier">err</span></code>.
5902            </p>
5903<p>
5904              <span class="bold"><strong>Returns:</strong></span> An iterator pointing just
5905              beyond the last character that can be determined to be part of a epoch.
5906            </p>
5907</div>
5908</div>
5909</div>
5910<div class="section">
5911<div class="titlepage"><div><div><h4 class="title">
5912<a name="chrono.reference.io.time_point_put_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp" title="Header &lt;boost/chrono/io/time_point_put.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">io</span><span class="special">/</span><span class="identifier">time_point_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
5913</h4></div></div></div>
5914<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put">Template
5915          Class <code class="computeroutput"><span class="identifier">time_point_put</span></code></a></span></dt></dl></div>
5916<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
5917  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
5918    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
5919    <span class="keyword">class</span> <span class="identifier">time_point_put</span><span class="special">;</span>
5920  <span class="special">}</span>
5921<span class="special">}</span>
5922</pre>
5923<div class="section">
5924<div class="titlepage"><div><div><h5 class="title">
5925<a name="chrono.reference.io.time_point_put_hpp.time_point_put"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put" title="Template Class time_point_put">Template
5926          Class <code class="computeroutput"><span class="identifier">time_point_put</span></code></a>
5927</h5></div></div></div>
5928<p>
5929            The __time_point_put facet provides facilities for formatted output of
5930            <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> values. The member
5931            function of __time_point_put take a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a> and format it into
5932            character string representation.
5933          </p>
5934<p>
5935            tparam ChatT a character type tparam OutputIterator a model of <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
5936          </p>
5937<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
5938<span class="keyword">class</span> <span class="identifier">time_point_put</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">facet</span>
5939<span class="special">{</span>
5940<span class="keyword">public</span><span class="special">:</span>
5941  <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> <span class="comment">// Type of character the facet is instantiated on.</span>
5942  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span> <span class="comment">// Type of character string passed to member functions.</span>
5943  <span class="keyword">typedef</span> <span class="identifier">OutputIterator</span> <span class="identifier">iter_type</span><span class="special">;</span> <span class="comment">// Type of iterator used to write in the character buffer.</span>
5944
5945  <span class="keyword">explicit</span> <span class="identifier">time_point_put</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
5946  <span class="special">~</span><span class="identifier">time_point_put</span><span class="special">();</span>
5947
5948  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
5949  <span class="identifier">iter_type</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tp</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pattern</span><span class="special">,</span>
5950      <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pat_end</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5951  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
5952  <span class="identifier">iter_type</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5953  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
5954  <span class="identifier">iter_type</span> <span class="identifier">put_duration</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5955  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">&gt;</span>
5956  <span class="identifier">iter_type</span> <span class="identifier">put_epoch</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">os</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5957
5958  <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span>
5959
5960
5961<span class="special">};</span>
5962</pre>
5963<div class="section">
5964<div class="titlepage"><div><div><h6 class="title">
5965<a name="chrono.reference.io.time_point_put_hpp.time_point_put.c"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.c" title="Constructor time_point_get(size_t)">Constructor
5966            <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a>
5967</h6></div></div></div>
5968<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_point_put</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
5969</pre>
5970<p>
5971              Construct a time_point_put facet.
5972            </p>
5973<p>
5974              <span class="bold"><strong>Effects:</strong></span> Construct a time_point_put
5975              facet. If the <code class="computeroutput"><span class="identifier">refs</span></code>
5976              argument is <code class="computeroutput"><span class="number">0</span></code> then destruction
5977              of the object is delegated to the locale, or locales, containing it.
5978              This allows the user to ignore lifetime management issues. On the other
5979              had, if <code class="computeroutput"><span class="identifier">refs</span></code> is <code class="computeroutput"><span class="number">1</span></code> then the object must be explicitly
5980              deleted; the locale will not do so. In this case, the object can be
5981              maintained across the lifetime of multiple locales.
5982            </p>
5983<p>
5984              <span class="bold"><strong>Parameters:</strong></span>
5985            </p>
5986<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
5987                  <span class="bold"><strong>refs:</strong></span> references
5988                </li></ul></div>
5989</div>
5990<div class="section">
5991<div class="titlepage"><div><div><h6 class="title">
5992<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put1"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put1" title="Member Function put()">Member
5993            Function <code class="computeroutput"><span class="identifier">put</span><span class="special">()</span></code></a>
5994</h6></div></div></div>
5995<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
5996<span class="identifier">iter_type</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tp</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pattern</span><span class="special">,</span>
5997    <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">pat_end</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5998</pre>
5999<p>
6000              <span class="bold"><strong>Parameters:</strong></span>
6001            </p>
6002<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
6003<li class="listitem">
6004                  <span class="bold"><strong>i:</strong></span> an output stream iterator
6005                </li>
6006<li class="listitem">
6007                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6008                </li>
6009<li class="listitem">
6010                  <span class="bold"><strong>fill:</strong></span> the character used as filler
6011                </li>
6012<li class="listitem">
6013                  <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
6014                </li>
6015<li class="listitem">
6016                  <span class="bold"><strong>pattern:</strong></span> begin of the formatting
6017                  pattern
6018                </li>
6019<li class="listitem">
6020                  <span class="bold"><strong>pat_end:</strong></span> end of the formatting
6021                  pattern
6022                </li>
6023</ul></div>
6024<p>
6025              <span class="bold"><strong>Effects:</strong></span> Steps through the sequence
6026              from <code class="computeroutput"><span class="identifier">pattern</span></code> to <code class="computeroutput"><span class="identifier">pat_end</span></code>, identifying characters that
6027              are part of a pattern sequence. Each character that is not part of
6028              a pattern sequence is written to <code class="computeroutput"><span class="identifier">s</span></code>
6029              immediately, and each pattern sequence, as it is identified, results
6030              in a call to __put_duration or __put_epoch; thus, pattern elements
6031              and other characters are interleaved in the output in the order in
6032              which they appear in the pattern. Pattern sequences are identified
6033              by converting each character <code class="computeroutput"><span class="identifier">c</span></code>
6034              to a <code class="computeroutput"><span class="keyword">char</span></code> value as if
6035              by <code class="computeroutput"><span class="identifier">ct</span><span class="special">.</span><span class="identifier">narrow</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code>, where
6036              <code class="computeroutput"><span class="identifier">ct</span></code> is a reference to
6037              <code class="computeroutput"><span class="identifier">ctype</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span></code>
6038              obtained from <code class="computeroutput"><span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">()</span></code>.
6039              The first character of each sequence is equal to <code class="computeroutput"><span class="char">'%'</span></code>,
6040              followed by a pattern specifier character spec, which can be <code class="computeroutput"><span class="char">'d'</span></code> for the duration value or <code class="computeroutput"><span class="char">'e'</span></code> for the epoch. For each valid pattern
6041              sequence identified, calls <code class="computeroutput"><span class="identifier">put_duration</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">tp</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">())</span></code> or <code class="computeroutput"><span class="identifier">put_epoch</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">)</span></code>.
6042            </p>
6043<p>
6044              <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
6045              after the last character produced.
6046            </p>
6047</div>
6048<div class="section">
6049<div class="titlepage"><div><div><h6 class="title">
6050<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put2"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put2" title="Member Function put()">Member
6051            Function <code class="computeroutput"><span class="identifier">put</span><span class="special">()</span></code></a>
6052</h6></div></div></div>
6053<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">&gt;</span>
6054<span class="identifier">iter_type</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6055</pre>
6056<p>
6057              <span class="bold"><strong>Parameters:</strong></span>
6058            </p>
6059<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
6060<li class="listitem">
6061                  <span class="bold"><strong>i:</strong></span> an output stream iterator
6062                </li>
6063<li class="listitem">
6064                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6065                </li>
6066<li class="listitem">
6067                  <span class="bold"><strong>fill:</strong></span> the character used as filler
6068                </li>
6069<li class="listitem">
6070                  <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
6071                </li>
6072<li class="listitem">
6073                  <span class="bold"><strong>tern:</strong></span> begin of the formatting
6074                  pattern
6075                </li>
6076<li class="listitem">
6077                  <span class="bold"><strong>pat_end:</strong></span> end of the formatting
6078                  pattern
6079                </li>
6080</ul></div>
6081<p>
6082              <span class="bold"><strong>Effects:</strong></span> Stores the time_point pattern
6083              from the __time_point_unit facet in let say <code class="computeroutput"><span class="identifier">str</span></code>.
6084              Last as if
6085            </p>
6086<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">tp</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
6087</pre>
6088<p>
6089              <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
6090              after the last character produced.
6091            </p>
6092</div>
6093<div class="section">
6094<div class="titlepage"><div><div><h6 class="title">
6095<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put_duration"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put_duration" title="Member Function put_duration()">Member
6096            Function <code class="computeroutput"><span class="identifier">put_duration</span><span class="special">()</span></code></a>
6097</h6></div></div></div>
6098<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">&gt;</span>
6099<span class="identifier">iter_type</span> <span class="identifier">put_duration</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">char_type</span> <span class="identifier">fill</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;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6100</pre>
6101<p>
6102              <span class="bold"><strong>Parameters:</strong></span>
6103            </p>
6104<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
6105<li class="listitem">
6106                  <span class="bold"><strong>i:</strong></span> an output stream iterator
6107                </li>
6108<li class="listitem">
6109                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6110                </li>
6111<li class="listitem">
6112                  <span class="bold"><strong>fill:</strong></span> the character used as filler
6113                </li>
6114<li class="listitem">
6115                  <span class="bold"><strong>d:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a>
6116                </li>
6117</ul></div>
6118<p>
6119              <span class="bold"><strong>Effects:</strong></span> As if <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">put</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">d</span><span class="special">)</span></code> where facet is the <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
6120              facet associated to the <code class="computeroutput"><span class="identifier">ios</span></code>
6121              or a new instance of <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>.
6122            </p>
6123<p>
6124              <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
6125              after the last character produced.
6126            </p>
6127</div>
6128<div class="section">
6129<div class="titlepage"><div><div><h6 class="title">
6130<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put_epoch"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put_epoch" title="Member Function put_epoch()">Member
6131            Function <code class="computeroutput"><span class="identifier">put_epoch</span><span class="special">()</span></code></a>
6132</h6></div></div></div>
6133<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">&gt;</span>
6134<span class="identifier">iter_type</span> <span class="identifier">put_epoch</span><span class="special">(</span><span class="identifier">iter_type</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&amp;</span> <span class="identifier">os</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6135</pre>
6136<p>
6137              <span class="bold"><strong>Parameters:</strong></span>
6138            </p>
6139<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
6140<li class="listitem">
6141                  <span class="bold"><strong>i:</strong></span> an output stream iterator
6142                </li>
6143<li class="listitem">
6144                  <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6145                </li>
6146</ul></div>
6147<p>
6148              <span class="bold"><strong>Effects:</strong></span> As if
6149            </p>
6150<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">facet</span><span class="special">.</span><span class="keyword">template</span> <span class="identifier">get_epoch</span><span class="special">&lt;</span><span class="identifier">Clock</span><span class="special">&gt;();</span>
6151<span class="identifier">s</span><span class="special">=</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">str</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">);</span>
6152</pre>
6153<p>
6154              where facet is the <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
6155              facet associated to the <code class="computeroutput"><span class="identifier">ios</span></code>
6156              or a new instance of <code class="computeroutput"><span class="identifier">__time_point_units_default</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>.
6157            </p>
6158<p>
6159              <span class="bold"><strong>Returns:</strong></span> s, iterator pointing immediately
6160              after the last character produced.
6161            </p>
6162</div>
6163</div>
6164</div>
6165<div class="section">
6166<div class="titlepage"><div><div><h4 class="title">
6167<a name="chrono.reference.io.time_point_units_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp" title="Header &lt;boost/chrono/io/time_point_units.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">io</span><span class="special">/</span><span class="identifier">time_point_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
6168</h4></div></div></div>
6169<div class="toc"><dl class="toc">
6170<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_units_hpp.get_epoch_custom">Template
6171          Function <code class="computeroutput"><span class="identifier">get_epoch_custom</span></code></a></span></dt>
6172<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units">Template
6173          Class <code class="computeroutput"><span class="identifier">time_point_units</span></code></a></span></dt>
6174<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units_default">Template
6175          Class <code class="computeroutput"><span class="identifier">time_point_units_default</span></code></a></span></dt>
6176</dl></div>
6177<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
6178  <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
6179    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">TPUFacet</span><span class="special">&gt;</span>
6180    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">get_epoch_custom</span><span class="special">(</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">TPUFacet</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">);</span>
6181    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">&gt;</span>
6182    <span class="keyword">class</span> <span class="identifier">time_point_units</span><span class="special">;</span>
6183    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">&gt;</span>
6184    <span class="keyword">class</span> <span class="identifier">time_point_units_default</span><span class="special">,</span>
6185  <span class="special">}</span>
6186<span class="special">}</span>
6187</pre>
6188<div class="section">
6189<div class="titlepage"><div><div><h5 class="title">
6190<a name="chrono.reference.io.time_point_units_hpp.get_epoch_custom"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.get_epoch_custom" title="Template Function get_epoch_custom">Template
6191          Function <code class="computeroutput"><span class="identifier">get_epoch_custom</span></code></a>
6192</h5></div></div></div>
6193<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">TPUFacet</span><span class="special">&gt;</span>
6194<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">get_epoch_custom</span><span class="special">(</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">TPUFacet</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">);</span>
6195</pre>
6196<p>
6197            Customization point to the epoch associated to the clock <code class="computeroutput"><span class="identifier">Clock</span></code> The default calls <code class="computeroutput"><span class="identifier">f</span><span class="special">.</span><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">Clock</span><span class="special">())</span></code>.
6198          </p>
6199<p>
6200            The user can overload this function.
6201          </p>
6202<p>
6203            <span class="bold"><strong>Returns:</strong></span> Forwards the call to the facet
6204            as if
6205          </p>
6206<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">Clock</span><span class="special">());</span>
6207</pre>
6208</div>
6209<div class="section">
6210<div class="titlepage"><div><div><h5 class="title">
6211<a name="chrono.reference.io.time_point_units_hpp.time_point_units"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units">Template
6212          Class <code class="computeroutput"><span class="identifier">time_point_units</span></code></a>
6213</h5></div></div></div>
6214<p>
6215            <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet gives
6216            useful information about the time_point pattern, the text associated
6217            to a time_point's epoch,
6218          </p>
6219<pre class="programlisting">  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">&gt;</span>
6220  <span class="keyword">class</span> <span class="identifier">time_point_units</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">facet</span>
6221  <span class="special">{</span>
6222  <span class="keyword">public</span><span class="special">:</span>
6223    <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> <span class="comment">// Type of character the facet is instantiated on.</span>
6224    <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span> <span class="comment">// Type of character string used by member functions.</span>
6225    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span>
6226
6227    <span class="keyword">explicit</span> <span class="identifier">time_point_units</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
6228
6229    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span>
6230    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">&gt;</span>
6231    <span class="identifier">string_type</span> <span class="identifier">get_epoch</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
6232
6233  <span class="keyword">protected</span><span class="special">:</span>
6234    <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">time_point_units</span><span class="special">();</span>
6235    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6236    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6237
6238<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span>
6239    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6240    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6241    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6242    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6243<span class="preprocessor">#endif</span>
6244<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span>
6245    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6246<span class="preprocessor">#endif</span>
6247
6248  <span class="special">};</span>
6249</pre>
6250<div class="section">
6251<div class="titlepage"><div><div><h6 class="title">
6252<a name="chrono.reference.io.time_point_units_hpp.time_point_units.c"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.c" title="Constructor time_point_units()">Constructor
6253            <code class="computeroutput"><span class="identifier">time_point_units</span><span class="special">()</span></code></a>
6254</h6></div></div></div>
6255<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_point_units</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
6256</pre>
6257<p>
6258              Construct a <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet.
6259            </p>
6260<p>
6261              <span class="bold"><strong>Parameters:</strong></span>
6262            </p>
6263<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6264                  <span class="bold"><strong>refs:</strong></span> references
6265                </li></ul></div>
6266<p>
6267              <span class="bold"><strong>Effects:</strong></span> Construct a <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet. If
6268              the <code class="computeroutput"><span class="identifier">refs</span></code> argument is
6269              <code class="computeroutput"><span class="number">0</span></code> then destruction of the
6270              object is delegated to the locale, or locales, containing it. This
6271              allows the user to ignore lifetime management issues. On the other
6272              had, if <code class="computeroutput"><span class="identifier">refsv</span> <span class="identifier">is</span>
6273              </code>1` then the object must be explicitly deleted; the locale will
6274              not do so. In this case, the object can be maintained across the lifetime
6275              of multiple locales.
6276            </p>
6277</div>
6278<div class="section">
6279<div class="titlepage"><div><div><h6 class="title">
6280<a name="chrono.reference.io.time_point_units_hpp.time_point_units.get_pattern"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.get_pattern" title="Member Function get_pattern()">Member
6281            Function <code class="computeroutput"><span class="identifier">get_pattern</span><span class="special">()</span></code></a>
6282</h6></div></div></div>
6283<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span>
6284</pre>
6285<p>
6286              <span class="bold"><strong>Returns:</strong></span> the pattern to be used by
6287              default.
6288            </p>
6289</div>
6290<div class="section">
6291<div class="titlepage"><div><div><h6 class="title">
6292<a name="chrono.reference.io.time_point_units_hpp.time_point_units.get_epoch"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.get_epoch" title="Member Function get_epoch()">Member
6293            Function <code class="computeroutput"><span class="identifier">get_epoch</span><span class="special">()</span></code></a>
6294</h6></div></div></div>
6295<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">&gt;</span>
6296<span class="identifier">string_type</span> <span class="identifier">get_epoch</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
6297</pre>
6298<p>
6299              <span class="bold"><strong>Returns:</strong></span> the epoch associated to the
6300              clock <code class="computeroutput"><span class="identifier">Clock</span></code> as if
6301              <code class="computeroutput"><span class="keyword">return</span> <span class="identifier">get_epoch_custom</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;(</span><span class="identifier">Clock</span><span class="special">(),</span> <span class="special">*</span><span class="keyword">this</span><span class="special">);</span> </code>
6302            </p>
6303</div>
6304<div class="section">
6305<div class="titlepage"><div><div><h6 class="title">
6306<a name="chrono.reference.io.time_point_units_hpp.time_point_units.d"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.d" title="Destructor time_point_units()">Destructor
6307            <code class="computeroutput"><span class="identifier">time_point_units</span><span class="special">()</span></code></a>
6308</h6></div></div></div>
6309<pre class="programlisting"><span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">time_point_units</span><span class="special">();</span>
6310</pre>
6311<p>
6312              Destroy the facet.
6313            </p>
6314</div>
6315<div class="section">
6316<div class="titlepage"><div><div><h6 class="title">
6317<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_system_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_system_clock" title="Member Function do_get_epoch(system_clock)">Member
6318            Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span><span class="special">)</span></code></a>
6319</h6></div></div></div>
6320<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6321</pre>
6322<p>
6323              <span class="bold"><strong>Parameters:</strong></span>
6324            </p>
6325<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6326                  <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>.
6327                </li></ul></div>
6328<p>
6329              <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6330              to the <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>.
6331            </p>
6332</div>
6333<div class="section">
6334<div class="titlepage"><div><div><h6 class="title">
6335<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_steady_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_steady_clock" title="Member Function do_get_epoch(steady_clock)">Member
6336            Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span><span class="special">)</span></code></a>
6337</h6></div></div></div>
6338<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6339</pre>
6340<p>
6341              <span class="bold"><strong>Parameters:</strong></span>
6342            </p>
6343<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6344                  <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a>.
6345                </li></ul></div>
6346<p>
6347              <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6348              to the <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a>.
6349            </p>
6350</div>
6351<div class="section">
6352<div class="titlepage"><div><div><h6 class="title">
6353<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_real_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_real_cpu_clock" title="Member Function do_get_epoch(process_real_cpu_clock)">Member
6354            Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span><span class="special">)</span></code></a>
6355</h6></div></div></div>
6356<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span>
6357    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6358<span class="preprocessor">#endif</span>
6359</pre>
6360<p>
6361              <span class="bold"><strong>Parameters:</strong></span>
6362            </p>
6363<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6364                  <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>.
6365                </li></ul></div>
6366<p>
6367              <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6368              to the <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>.
6369            </p>
6370</div>
6371<div class="section">
6372<div class="titlepage"><div><div><h6 class="title">
6373<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_user_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_user_cpu_clock" title="Member Function do_get_epoch(process_user_cpu_clock)">Member
6374            Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span><span class="special">)</span></code></a>
6375</h6></div></div></div>
6376<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span>
6377    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6378<span class="preprocessor">#endif</span>
6379</pre>
6380<p>
6381              <span class="bold"><strong>Parameters:</strong></span>
6382            </p>
6383<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6384                  <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>.
6385                </li></ul></div>
6386<p>
6387              <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6388              to the process_user_cpu_clock.
6389            </p>
6390</div>
6391<div class="section">
6392<div class="titlepage"><div><div><h6 class="title">
6393<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_system_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_system_cpu_clock" title="Member Function do_get_epoch(process_system_cpu_clock)">Member
6394            Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span><span class="special">)</span></code></a>
6395</h6></div></div></div>
6396<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span>
6397    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6398<span class="preprocessor">#endif</span>
6399</pre>
6400<p>
6401              <span class="bold"><strong>Parameters:</strong></span>
6402            </p>
6403<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6404                  <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>.
6405                </li></ul></div>
6406<p>
6407              <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6408              to the process_user_cpu_clock.
6409            </p>
6410</div>
6411<div class="section">
6412<div class="titlepage"><div><div><h6 class="title">
6413<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_process_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_process_cpu_clock" title="Member Function do_get_epoch(process_cpu_clock)">Member
6414            Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span><span class="special">)</span></code></a>
6415</h6></div></div></div>
6416<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span>
6417    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6418<span class="preprocessor">#endif</span>
6419</pre>
6420<p>
6421              <span class="bold"><strong>Parameters:</strong></span>
6422            </p>
6423<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6424                  <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock"><code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a>.
6425                </li></ul></div>
6426<p>
6427              <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6428              to the process_cpu_clock.
6429            </p>
6430</div>
6431<div class="section">
6432<div class="titlepage"><div><div><h6 class="title">
6433<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_thread_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_thread_clock" title="Member Function do_get_epoch(thread_clock)">Member
6434            Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span><span class="special">)</span></code></a>
6435</h6></div></div></div>
6436<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span>
6437    <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
6438<span class="preprocessor">#endif</span>
6439</pre>
6440<p>
6441              <span class="bold"><strong>Parameters:</strong></span>
6442            </p>
6443<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6444                  <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a>.
6445                </li></ul></div>
6446<p>
6447              <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6448              to the <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a>.
6449            </p>
6450</div>
6451</div>
6452<div class="section">
6453<div class="titlepage"><div><div><h5 class="title">
6454<a name="chrono.reference.io.time_point_units_hpp.time_point_units_default"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units_default" title="Template Class time_point_units_default">Template
6455          Class <code class="computeroutput"><span class="identifier">time_point_units_default</span></code></a>
6456</h5></div></div></div>
6457<pre class="programlisting">  <span class="comment">// This class is used to define the strings for the default English</span>
6458  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">&gt;</span>
6459  <span class="keyword">class</span> <span class="identifier">time_point_units_default</span><span class="special">:</span> <span class="keyword">public</span> <span class="identifier">time_point_units</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span>
6460  <span class="special">{</span>
6461  <span class="keyword">public</span><span class="special">:</span>
6462    <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> <span class="comment">// Type of character the facet is instantiated on.</span>
6463    <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span> <span class="comment">// Type of character string used by member functions.</span>
6464
6465    <span class="keyword">explicit</span> <span class="identifier">time_point_units_default</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
6466    <span class="special">~</span><span class="identifier">time_point_units_default</span><span class="special">();</span>
6467
6468    <span class="comment">/**
6469     * __returns the default pattern "%d%e".
6470     */</span>
6471    <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
6472
6473  <span class="keyword">protected</span><span class="special">:</span>
6474    <span class="comment">/**
6475     * [param c a dummy instance of __system_clock.
6476     * __returns The epoch string returned by `clock_string&lt;system_clock,CharT&gt;::since()`.
6477     */</span>
6478    <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6479    <span class="comment">/**
6480     * [param c a dummy instance of __steady_clock.
6481     * __returns The epoch string returned by `clock_string&lt;steady_clock,CharT&gt;::since()`.
6482     */</span>
6483    <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6484<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span>
6485    <span class="comment">/**
6486     * [param c a dummy instance of __process_real_cpu_clock.
6487     * __returns The epoch string returned by `clock_string&lt;process_real_cpu_clock,CharT&gt;::since()`.
6488     */</span>
6489    <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6490    <span class="comment">/**
6491     * [param c a dummy instance of __process_user_cpu_clock.
6492     * __returns The epoch string returned by `clock_string&lt;process_user_cpu_clock,CharT&gt;::since()`.
6493     */</span>
6494    <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6495    <span class="comment">/**
6496     * [param c a dummy instance of __process_system_cpu_clock.
6497     * __returns The epoch string returned by `clock_string&lt;process_system_cpu_clock,CharT&gt;::since()`.
6498     */</span>
6499    <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6500    <span class="comment">/**
6501     * [param c a dummy instance of __process_cpu_clock.
6502     * __returns The epoch string returned by `clock_string&lt;process_cpu_clock,CharT&gt;::since()`.
6503     */</span>
6504    <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6505
6506<span class="preprocessor">#endif</span>
6507<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span>
6508    <span class="comment">/**
6509     * [param c a dummy instance of __thread_clock.
6510     * __returns The epoch string returned by `clock_string&lt;thread_clock,CharT&gt;::since()`.
6511     */</span>
6512    <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6513<span class="preprocessor">#endif</span>
6514
6515  <span class="special">};</span>
6516</pre>
6517</div>
6518</div>
6519<div class="section">
6520<div class="titlepage"><div><div><h4 class="title">
6521<a name="chrono.reference.io.time_point_io_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp" title="Header &lt;boost/chrono/io/time_point_io.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">io</span><span class="special">/</span><span class="identifier">time_point_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
6522</h4></div></div></div>
6523<div class="toc"><dl class="toc">
6524<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_io_hpp.manip">I/O
6525          Manipulators</a></span></dt>
6526<dt><span class="section"><a href="reference.html#chrono.reference.io.time_point_io_hpp.streams">I/O
6527          Streams Operations</a></span></dt>
6528</dl></div>
6529<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
6530<span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
6531
6532
6533    <span class="comment">// manipulators</span>
6534
6535    <span class="identifier">unspecified</span> <a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip.time_fmt1" title="Non Member Function time_fmt(timezone)"><code class="computeroutput"><span class="identifier">time_fmt</span></code></a><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">);</span>
6536    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
6537    <span class="identifier">unspecified</span> <a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip.time_fmt2" title="Non Member Function time_fmt(timezone, string)"><code class="computeroutput"><span class="identifier">time_fmt</span></code></a><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">,</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">f</span><span class="special">);</span>
6538    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
6539    <span class="identifier">unspecified</span> <a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip.time_fmt2" title="Non Member Function time_fmt(timezone, string)"><code class="computeroutput"><span class="identifier">time_fmt</span></code></a><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">f</span><span class="special">);</span>
6540
6541    <span class="comment">// i/o state savers</span>
6542
6543    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Traits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
6544    <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a>
6545    <span class="special">{</span>
6546      <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span> <span class="identifier">state_type</span><span class="special">;</span>
6547      <span class="keyword">typedef</span> <span class="identifier">timezone</span> <span class="identifier">aspect_type</span><span class="special">;</span>
6548
6549      <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1" title="Constructor timezone_io_saver(state_type&amp;)"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
6550      <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c2" title="Constructor timezone_io_saver(state_type&amp;, aspect_type)"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span>
6551      <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.d" title="Destructor ~timezone_io_saver()"><code class="computeroutput"><span class="special">~</span><span class="identifier">timezone_io_saver</span></code></a><span class="special">();</span>
6552      <span class="keyword">void</span> <span class="identifier">timezone_io_saver__restore</span><span class="special">();</span>
6553    <span class="special">};</span>
6554
6555    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Traits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
6556    <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver&lt;&gt;"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a>
6557    <span class="special">{</span>
6558      <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span> <span class="identifier">state_type</span><span class="special">;</span>
6559
6560      <span class="keyword">explicit</span> <span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">);</span>
6561      <span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&amp;</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">new_value</span><span class="special">);</span>
6562      <span class="special">~</span> <span class="identifier">time_fmt_io_saver</span><span class="special">();</span>
6563      <span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span>
6564    <span class="special">};</span>
6565
6566    <span class="comment">// system_clock I/O</span>
6567
6568    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6569      <span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6570      <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
6571                 <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6572
6573    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6574      <span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6575      <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
6576                 <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6577
6578    <span class="comment">// Other Clocks I/O</span>
6579
6580    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6581        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6582        <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
6583               <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6584
6585    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6586        <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6587        <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
6588               <span class="identifier">time_point</span><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6589
6590<span class="special">}</span>
6591<span class="special">}</span>
6592</pre>
6593<div class="section">
6594<div class="titlepage"><div><div><h5 class="title">
6595<a name="chrono.reference.io.time_point_io_hpp.manip"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip" title="I/O Manipulators">I/O
6596          Manipulators</a>
6597</h5></div></div></div>
6598<div class="section">
6599<div class="titlepage"><div><div><h6 class="title">
6600<a name="chrono.reference.io.time_point_io_hpp.manip.time_fmt1"></a>Non Member Function <code class="computeroutput"><span class="identifier">time_fmt</span><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a><span class="special">)</span></code>
6601            </h6></div></div></div>
6602<pre class="programlisting"><span class="identifier">unspecified</span> <span class="identifier">time_fmt</span><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> <span class="identifier">tz</span><span class="special">);</span>
6603</pre>
6604<p>
6605              <span class="bold"><strong>Returns:</strong></span>: An unspecified object that
6606              when streamed to a <code class="computeroutput"><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span></code> or <code class="computeroutput"><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span></code> <code class="computeroutput"><span class="identifier">s</span></code>
6607              will have the effects of:
6608            </p>
6609<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_timezone" title="Non Member Function set_timezone(std::ios_base&amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_timezone</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">tz</span><span class="special">);</span>
6610</pre>
6611</div>
6612<div class="section">
6613<div class="titlepage"><div><div><h6 class="title">
6614<a name="chrono.reference.io.time_point_io_hpp.manip.time_fmt2"></a>Non Member Function <code class="computeroutput"><span class="identifier">time_fmt</span><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a><span class="special">,</span>
6615            <span class="identifier">string</span><span class="special">)</span></code>
6616            </h6></div></div></div>
6617<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
6618  <span class="identifier">unspecified</span> <span class="identifier">time_fmt</span><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">,</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">f</span><span class="special">);</span>
6619<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
6620  <span class="identifier">unspecified</span> <span class="identifier">time_fmt</span><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">f</span><span class="special">);</span>
6621</pre>
6622<p>
6623              <span class="bold"><strong>Returns:</strong></span>: An unspecified object that
6624              when streamed to a <code class="computeroutput"><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span></code> or <code class="computeroutput"><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;</span></code> <code class="computeroutput"><span class="identifier">s</span></code>
6625              will have the effects of:
6626            </p>
6627<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_timezone" title="Non Member Function set_timezone(std::ios_base&amp;,duration_style)"><code class="computeroutput"><span class="identifier">set_timezone</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">tz</span><span class="special">);</span>
6628<a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_time_fmt" title="Non Member Function set_time_fmt(std::ios_base&amp;, std::basic_string&lt;CharT&gt; const&amp;)"><code class="computeroutput"><span class="identifier">set_time_fmt</span></code></a><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
6629</pre>
6630</div>
6631</div>
6632<div class="section">
6633<div class="titlepage"><div><div><h5 class="title">
6634<a name="chrono.reference.io.time_point_io_hpp.streams"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams" title="I/O Streams Operations">I/O
6635          Streams Operations</a>
6636</h5></div></div></div>
6637<div class="section">
6638<div class="titlepage"><div><div><h6 class="title">
6639<a name="chrono.reference.io.time_point_io_hpp.streams.system_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.system_clock" title="system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>
6640</h6></div></div></div>
6641<div class="section">
6642<div class="titlepage"><div><div><h6 class="title">
6643<a name="chrono.reference.io.time_point_io_hpp.streams.system_clock.op_out"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.system_clock.op_out" title="Non Member Function operator&lt;&lt;()">Non
6644              Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;()</span></code></a>
6645</h6></div></div></div>
6646<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6647    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6648    <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
6649           <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6650</pre>
6651<p>
6652                <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6653                output function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code>
6654                object, if the <code class="computeroutput"><span class="identifier">sentry</span></code>
6655                converts to <code class="computeroutput"><span class="keyword">true</span></code>, sets
6656                a local variable <code class="computeroutput"><span class="identifier">tz</span></code>
6657                of type <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> to <code class="computeroutput"><span class="identifier">get_timezone</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span></code>.
6658                Additionally the format string obtained with <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_time_fmt" title="Non Member Function get_time_fmt(std::ios_base &amp;)"><code class="computeroutput"><span class="identifier">get_time_fmt</span></code></a><span class="special">()</span></code>
6659                is recorded as a pair of <code class="computeroutput"><span class="keyword">const</span>
6660                <span class="identifier">CharT</span><span class="special">*</span></code>.
6661                If the stream has no time_punct facet, then this pair of <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span></code> that represent an empty range.
6662              </p>
6663<p>
6664                Next <code class="computeroutput"><span class="identifier">tp</span></code> is converted
6665                to a <code class="computeroutput"><span class="identifier">time_t</span></code>, and
6666                this <code class="computeroutput"><span class="identifier">time_t</span></code> is converted
6667                to a <code class="computeroutput"><span class="identifier">tm</span></code>. The conversion
6668                to <code class="computeroutput"><span class="identifier">tm</span></code> use <code class="computeroutput"><span class="identifier">gmtime</span></code> (when available) if the
6669                timezone is <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">utc</span></code></a>, else it use localtime
6670                (if available).
6671              </p>
6672<p>
6673                Using the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_put</span></code> facet stored in <code class="computeroutput"><span class="identifier">os</span></code>, this inserter writes characters
6674                to the stream using the <code class="computeroutput"><span class="identifier">tm</span></code>
6675                and the formatting string stored in the <code class="computeroutput"><span class="identifier">time_punct</span></code>
6676                facet, unless that facet was missing, or unless it provided an empty
6677                string.
6678              </p>
6679<p>
6680                If the formatting string is empty, then output as follows:
6681              </p>
6682<p>
6683                First output <code class="computeroutput"><span class="identifier">tm</span></code> using
6684                <code class="computeroutput"><span class="string">"%F %H:%M:"</span></code>
6685              </p>
6686<p>
6687                Next output a <code class="computeroutput"><span class="keyword">double</span></code>
6688                representing the number of seconds stored in the <code class="computeroutput"><span class="identifier">tm</span></code>
6689                plus the fractional seconds represented in <code class="computeroutput"><span class="identifier">tp</span></code>.
6690                The format shall be <code class="computeroutput"><span class="identifier">ios</span><span class="special">::</span><span class="identifier">fixed</span></code>
6691                and the precision shall be sufficient to represent <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">duration</span></code> exactly (e.g. if <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">period</span></code> is micro, the precision
6692                should be sufficient to output six digits following the decimal point).
6693                If the number of seconds is less than <code class="computeroutput"><span class="number">10</span></code>,
6694                the output shall be prefixed by <code class="computeroutput"><span class="char">'0'</span></code>.
6695              </p>
6696<p>
6697                Finally if <code class="computeroutput"><span class="identifier">tz</span></code> is
6698                <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">local</span></code></a>, output the <code class="computeroutput"><span class="identifier">tm</span></code> using the pattern " %z".
6699                Else append the sequence " +0000" to the stream.
6700              </p>
6701<p>
6702                If any step fails, calls <code class="computeroutput"><span class="identifier">os</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span>
6703                <span class="special">|</span> <span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">)</span></code>.
6704              </p>
6705<p>
6706                <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>
6707              </p>
6708</div>
6709<div class="section">
6710<div class="titlepage"><div><div><h6 class="title">
6711<a name="chrono.reference.io.time_point_io_hpp.streams.system_clock.op_in"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.system_clock.op_in" title="Non Member Function operator&gt;&gt;()">Non
6712              Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;()</span></code></a>
6713</h6></div></div></div>
6714<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6715    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6716    <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
6717           <span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6718</pre>
6719<p>
6720                <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6721                input function. After constructing a sentry object, if the sentry
6722                converts to true, obtains a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_get</span></code>
6723                facet from <code class="computeroutput"><span class="identifier">is</span></code>, and
6724                obtains a formatting string in the same manner as described for insertion
6725                operator. Extract a <code class="computeroutput"><span class="identifier">tm</span></code>
6726                using the supplied formatting string, or if empty, defaulted as described
6727                for the insertion operator. Note that extraction does not use the
6728                <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> data stored in
6729                the <code class="computeroutput"><span class="identifier">is</span></code> for the defaulted
6730                string as the <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> information is
6731                stored in the stream.
6732              </p>
6733<p>
6734                Any <code class="computeroutput"><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span>
6735                <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span></code>
6736                inserted, and then extracted should result in an equal <code class="computeroutput"><span class="identifier">time_point</span><span class="special">&lt;</span><span class="identifier">system_clock</span><span class="special">,</span>
6737                <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span></code>,
6738                excepting any precision that did not get inserted.
6739              </p>
6740<p>
6741                <span class="bold"><strong>Example:</strong></span>
6742              </p>
6743<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">test</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">time_point</span> <span class="identifier">tp</span><span class="special">)</span>
6744<span class="special">{</span>
6745    <span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span> <span class="identifier">s</span><span class="special">;</span>
6746    <span class="identifier">s</span> <span class="special">&lt;&lt;</span> <span class="identifier">tp</span><span class="special">;</span>
6747    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">time_point</span> <span class="identifier">tp2</span><span class="special">;</span>
6748    <span class="identifier">s</span> <span class="special">&gt;&gt;</span> <span class="identifier">tp2</span><span class="special">;</span>
6749    <span class="identifier">assert</span><span class="special">(</span><span class="identifier">tp</span> <span class="special">==</span> <span class="identifier">tp2</span><span class="special">);</span>
6750<span class="special">}</span>
6751</pre>
6752<p>
6753                <span class="bold"><strong>Returns:</strong></span> is
6754              </p>
6755</div>
6756</div>
6757<div class="section">
6758<div class="titlepage"><div><div><h6 class="title">
6759<a name="chrono.reference.io.time_point_io_hpp.streams.other_clocks"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.other_clocks" title="Other Clocks">Other
6760            Clocks</a>
6761</h6></div></div></div>
6762<div class="section">
6763<div class="titlepage"><div><div><h6 class="title">
6764<a name="chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_out"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_out" title="Non Member Function operator&lt;&lt;()">Non
6765              Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;()</span></code></a>
6766</h6></div></div></div>
6767<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6768    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6769    <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
6770           <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6771</pre>
6772<p>
6773                <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6774                output function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code>
6775                object, if the <code class="computeroutput"><span class="identifier">sentry</span></code>
6776                converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls
6777                to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">put</span><span class="special">(</span><span class="identifier">os</span><span class="special">,</span><span class="identifier">os</span><span class="special">,</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">fill</span><span class="special">(),</span><span class="identifier">tp</span><span class="special">)</span></code>
6778                where <code class="computeroutput"><span class="identifier">facet</span></code> is the
6779                <code class="computeroutput"><span class="identifier">time_point_put</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
6780                facet associated to <code class="computeroutput"><span class="identifier">os</span></code>
6781                or a new created instance of the default <code class="computeroutput"><span class="identifier">time_point_put</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code> facet.
6782              </p>
6783<p>
6784                <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>.
6785              </p>
6786<p>
6787                <span class="bold"><strong>Example:</strong></span>
6788              </p>
6789<pre class="programlisting"><span class="number">22644271279698</span> <span class="identifier">nanoseconds</span> <span class="identifier">since</span> <span class="identifier">boot</span>
6790</pre>
6791</div>
6792<div class="section">
6793<div class="titlepage"><div><div><h6 class="title">
6794<a name="chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_in"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_in" title="Non Member Function operator&gt;&gt;()">Non
6795              Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;()</span></code></a>
6796</h6></div></div></div>
6797<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;</span>
6798    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6799    <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
6800           <span class="identifier">time_point</span><span class="special">&lt;</span><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">&gt;&amp;</span> <span class="identifier">tp</span><span class="special">);</span>
6801</pre>
6802<p>
6803                Extracts <code class="computeroutput"><span class="identifier">tp</span></code> from
6804                the stream <code class="computeroutput"><span class="identifier">is</span></code>.
6805              </p>
6806<p>
6807                <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6808                input function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code>
6809                object, if the <code class="computeroutput"><span class="identifier">sentry</span></code>
6810                converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls
6811                to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">get</span><span class="special">(</span><span class="identifier">is</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span>
6812                <span class="identifier">Traits</span><span class="special">&gt;(),</span>
6813                <span class="identifier">is</span><span class="special">,</span>
6814                <span class="identifier">err</span><span class="special">,</span>
6815                <span class="identifier">tp</span><span class="special">)</span></code>
6816                where <code class="computeroutput"><span class="identifier">facet</span></code> is the
6817                <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code>
6818                facet associated to <code class="computeroutput"><span class="identifier">is</span></code>
6819                or a new created instance of the default <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></code> facet.
6820              </p>
6821<p>
6822                If any step fails, calls <code class="computeroutput"><span class="identifier">os</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span>
6823                <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">)</span></code>.
6824              </p>
6825<p>
6826                <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code>.
6827              </p>
6828</div>
6829</div>
6830</div>
6831</div>
6832</div>
6833<div class="section">
6834<div class="titlepage"><div><div><h3 class="title">
6835<a name="chrono.reference.round"></a><a class="link" href="reference.html#chrono.reference.round" title="Chrono Rounding Utilities">Chrono Rounding Utilities</a>
6836</h3></div></div></div>
6837<div class="toc"><dl class="toc">
6838<dt><span class="section"><a href="reference.html#chrono.reference.round.floor_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">floor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
6839<dt><span class="section"><a href="reference.html#chrono.reference.round.round_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">round</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
6840<dt><span class="section"><a href="reference.html#chrono.reference.round.ceil_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">ceil</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
6841</dl></div>
6842<div class="section">
6843<div class="titlepage"><div><div><h4 class="title">
6844<a name="chrono.reference.round.floor_hpp"></a><a class="link" href="reference.html#chrono.reference.round.floor_hpp" title="Header &lt;boost/chrono/floor.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">floor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
6845</h4></div></div></div>
6846<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>
6847  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">To</span><span class="special">,</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>
6848  <span class="identifier">To</span> <span class="identifier">floor</span><span class="special">(</span><span class="keyword">const</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>
6849<span class="special">}</span> <span class="special">}</span>
6850</pre>
6851<p>
6852          This function round down the given parameter.
6853        </p>
6854</div>
6855<div class="section">
6856<div class="titlepage"><div><div><h4 class="title">
6857<a name="chrono.reference.round.round_hpp"></a><a class="link" href="reference.html#chrono.reference.round.round_hpp" title="Header &lt;boost/chrono/round.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">round</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
6858</h4></div></div></div>
6859<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>
6860  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">To</span><span class="special">,</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>
6861  <span class="identifier">To</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">const</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>
6862<span class="special">}</span> <span class="special">}</span>
6863</pre>
6864<p>
6865          This function round to nearest, to even on tie the given parameter.
6866        </p>
6867</div>
6868<div class="section">
6869<div class="titlepage"><div><div><h4 class="title">
6870<a name="chrono.reference.round.ceil_hpp"></a><a class="link" href="reference.html#chrono.reference.round.ceil_hpp" title="Header &lt;boost/chrono/ceil.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">ceil</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
6871</h4></div></div></div>
6872<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>
6873  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">To</span><span class="special">,</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>
6874  <span class="identifier">To</span> <span class="identifier">ceil</span><span class="special">(</span><span class="keyword">const</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>
6875<span class="special">}</span> <span class="special">}</span>
6876</pre>
6877<p>
6878          This function round up the given parameter.
6879        </p>
6880</div>
6881</div>
6882<div class="section">
6883<div class="titlepage"><div><div><h3 class="title">
6884<a name="chrono.reference.other_clocks"></a><a class="link" href="reference.html#chrono.reference.other_clocks" title="Other Clocks">Other Clocks</a>
6885</h3></div></div></div>
6886<div class="toc"><dl class="toc">
6887<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp">Header
6888        <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>
6889<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp">Header
6890        <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">thread_clock</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a></span></dt>
6891</dl></div>
6892<div class="section">
6893<div class="titlepage"><div><div><h4 class="title">
6894<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp" title="Header &lt;boost/chrono/process_cpu_clocks.hpp&gt;">Header
6895        <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>
6896</h4></div></div></div>
6897<div class="toc"><dl class="toc">
6898<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.BOOST_CHRONO_HAS_PROCESS_CLOCKS">Macro
6899          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span>
6900          </code></a></span></dt>
6901<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock">Class
6902          <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a></span></dt>
6903<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock">Class
6904          <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a></span></dt>
6905<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock">Class
6906          <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a></span></dt>
6907<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock">Class
6908          <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a></span></dt>
6909<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times">Template
6910          Class <code class="computeroutput"><span class="identifier">process_times</span></code></a></span></dt>
6911<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_io"><code class="computeroutput"><span class="identifier">process_times</span></code> Input/Output</a></span></dt>
6912<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special">&lt;&gt;</span></code></a></span></dt>
6913<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_real_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_real_cpu_clock</span><span class="special">&gt;</span></code>
6914          Specialization</a></span></dt>
6915<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_user_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_user_cpu_clock</span><span class="special">&gt;</span></code>
6916          Specialization</a></span></dt>
6917<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_system_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_system_cpu_clock</span><span class="special">&gt;</span></code>
6918          Specialization</a></span></dt>
6919<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_cpu_clock</span><span class="special">&gt;</span></code>
6920          Specialization</a></span></dt>
6921<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_numeric_limits"><code class="computeroutput"><span class="identifier">numeric_limits</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special">&lt;&gt;</span></code></a></span></dt>
6922</dl></div>
6923<p>
6924          Knowing how long a program takes to execute is useful in both test and
6925          production environments. It is also helpful if such timing information
6926          is broken down into real (wall clock) time, CPU time spent by the user,
6927          and CPU time spent by the operating system servicing user requests.
6928        </p>
6929<p>
6930          Process clocks don't include the time spent by the child process.
6931        </p>
6932<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span>
6933
6934<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>
6935
6936    <span class="keyword">class</span> <span class="identifier">process_real_cpu_clock</span><span class="special">;</span>
6937    <span class="keyword">class</span> <span class="identifier">process_user_cpu_clock</span><span class="special">;</span>
6938    <span class="keyword">class</span> <span class="identifier">process_system_cpu_clock</span><span class="special">;</span>
6939    <span class="keyword">class</span> <span class="identifier">process_cpu_clock</span><span class="special">;</span>
6940
6941    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
6942    <span class="keyword">struct</span> <span class="identifier">process_times</span><span class="special">;</span>
6943    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
6944    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6945    <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
6946            <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
6947
6948    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
6949    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
6950    <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
6951            <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
6952
6953    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
6954    <span class="keyword">struct</span> <span class="identifier">duration_values</span><span class="special">&lt;</span><span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="special">&gt;;</span>
6955
6956    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
6957    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_real_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;;</span>
6958    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_user_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;;</span>
6959    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_system_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;;</span>
6960    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;;</span>
6961
6962<span class="special">}</span> <span class="special">}</span>
6963<span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span>
6964    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
6965    <span class="keyword">class</span> <span class="identifier">numeric_limits</span><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_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="special">&gt;;</span>
6966<span class="special">}</span>
6967</pre>
6968<div class="section">
6969<div class="titlepage"><div><div><h5 class="title">
6970<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.BOOST_CHRONO_HAS_PROCESS_CLOCKS"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.BOOST_CHRONO_HAS_PROCESS_CLOCKS" title="Macro BOOST_CHRONO_HAS_PROCESS_CLOCKS">Macro
6971          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span>
6972          </code></a>
6973</h5></div></div></div>
6974<p>
6975            This macro is defined if the platform supports process clocks.
6976          </p>
6977</div>
6978<div class="section">
6979<div class="titlepage"><div><div><h5 class="title">
6980<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock">Class
6981          <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>
6982</h5></div></div></div>
6983<p>
6984            <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> satisfy
6985            the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
6986            requirements.
6987          </p>
6988<p>
6989            <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> class
6990            provides access to the real process wall-clock steady clock, i.e. the
6991            real CPU-time clock of the calling process. The process relative current
6992            time can be obtained by calling <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>.
6993          </p>
6994<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_real_cpu_clock</span> <span class="special">{</span>
6995<span class="keyword">public</span><span class="special">:</span>
6996    <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a>                          <span class="identifier">duration</span><span class="special">;</span>
6997    <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>
6998    <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>
6999    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><span class="identifier">process_real_cpu_clock</span><span class="special">&gt;</span>    <span class="identifier">time_point</span><span class="special">;</span>
7000    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span>            <span class="keyword">true</span><span class="special">;</span>
7001
7002    <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span>  <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
7003    <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>
7004<span class="special">};</span>
7005</pre>
7006</div>
7007<div class="section">
7008<div class="titlepage"><div><div><h5 class="title">
7009<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock">Class
7010          <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a>
7011</h5></div></div></div>
7012<p>
7013            <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> satisfy
7014            the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
7015            requirements.
7016          </p>
7017<p>
7018            <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> class
7019            provides access to the user CPU-time steady clock of the calling process.
7020            The process relative user current time can be obtained by calling <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>.
7021          </p>
7022<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_user_cpu_clock</span> <span class="special">{</span>
7023<span class="keyword">public</span><span class="special">:</span>
7024    <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a>                          <span class="identifier">duration</span><span class="special">;</span>
7025    <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>
7026    <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>
7027    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><span class="identifier">process_user_cpu_clock</span><span class="special">&gt;</span>    <span class="identifier">time_point</span><span class="special">;</span>
7028    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span>            <span class="keyword">true</span><span class="special">;</span>
7029
7030    <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span>  <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
7031    <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>
7032<span class="special">};</span>
7033</pre>
7034</div>
7035<div class="section">
7036<div class="titlepage"><div><div><h5 class="title">
7037<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock">Class
7038          <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>
7039</h5></div></div></div>
7040<p>
7041            <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> satisfy
7042            the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
7043            requirements.
7044          </p>
7045<p>
7046            <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> class
7047            provides access to the system CPU-time steady clock of the calling process.
7048            The process relative system current time can be obtained by calling
7049            <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>.
7050          </p>
7051<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_system_cpu_clock</span> <span class="special">{</span>
7052<span class="keyword">public</span><span class="special">:</span>
7053    <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a>                          <span class="identifier">duration</span><span class="special">;</span>
7054    <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>
7055    <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>
7056    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><span class="identifier">process_system_cpu_clock</span><span class="special">&gt;</span>    <span class="identifier">time_point</span><span class="special">;</span>
7057    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span>            <span class="keyword">true</span><span class="special">;</span>
7058
7059    <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span>  <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
7060    <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>
7061<span class="special">};</span>
7062</pre>
7063</div>
7064<div class="section">
7065<div class="titlepage"><div><div><h5 class="title">
7066<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock">Class
7067          <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a>
7068</h5></div></div></div>
7069<p>
7070            <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code> can
7071            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>.
7072          </p>
7073<p>
7074            <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code> provides
7075            a thin wrapper around the operating system's process time API. For POSIX-like
7076            systems, that's the times() function, while for Windows, it's the <code class="computeroutput"><span class="identifier">GetProcessTimes</span><span class="special">()</span></code>
7077            function.
7078          </p>
7079<p>
7080            The process relative real, user and system current time can be obtained
7081            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>.
7082          </p>
7083<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_cpu_clock</span>
7084<span class="special">{</span>
7085<span class="keyword">public</span><span class="special">:</span>
7086    <span class="keyword">typedef</span> <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">nanoseconds</span><span class="special">::</span><span class="identifier">rep</span><span class="special">&gt;</span> <span class="identifier">times</span> <span class="special">;</span>
7087
7088    <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration&lt;&gt;"><code class="computeroutput"><span class="identifier">duration</span></code></a><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>
7089    <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>
7090    <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>
7091    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><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>
7092    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span>               <span class="keyword">true</span><span class="special">;</span>
7093
7094    <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span>  <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
7095    <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>
7096<span class="special">};</span>
7097</pre>
7098</div>
7099<div class="section">
7100<div class="titlepage"><div><div><h5 class="title">
7101<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times" title="Template Class process_times">Template
7102          Class <code class="computeroutput"><span class="identifier">process_times</span></code></a>
7103</h5></div></div></div>
7104<p>
7105            This class is the representation of the <code class="computeroutput"><span class="identifier">process_cpu_clock</span><span class="special">::</span><span class="identifier">duration</span></code>
7106            class. As such it needs to implements the arithmetic operators.
7107          </p>
7108<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
7109<span class="keyword">struct</span> <span class="identifier">process_times</span> <span class="special">:</span> <span class="identifier">arithmetic</span><span class="special">&lt;</span><span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;,</span>
7110    <span class="identifier">multiplicative</span><span class="special">&lt;</span><span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;,</span> <span class="identifier">Rep</span><span class="special">,</span>
7111    <span class="identifier">less_than_comparable</span><span class="special">&lt;</span><span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
7112<span class="special">{</span>
7113    <span class="identifier">Rep</span> <span class="identifier">real</span><span class="special">;</span>    <span class="comment">// real (i.e wall clock) time</span>
7114    <span class="identifier">Rep</span> <span class="identifier">user</span><span class="special">;</span>    <span class="comment">// user cpu time</span>
7115    <span class="identifier">Rep</span> <span class="identifier">system</span><span class="special">;</span>  <span class="comment">// system cpu time</span>
7116
7117    <span class="identifier">times</span><span class="special">();</span>
7118    <span class="identifier">times</span><span class="special">(</span>
7119        <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>
7120        <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>
7121        <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>
7122
7123    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">&gt;</span>
7124    <span class="keyword">explicit</span> <span class="identifier">process_times</span><span class="special">(</span>
7125        <span class="identifier">Rep2</span> <span class="identifier">r</span><span class="special">);</span>
7126    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">&gt;</span>
7127    <span class="keyword">explicit</span> <span class="identifier">process_times</span><span class="special">(</span>
7128        <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep2</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7129    <span class="keyword">operator</span> <span class="identifier">rep</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
7130
7131    <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7132    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">&gt;</span>
7133    <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep2</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7134
7135    <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7136    <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7137    <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7138    <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7139    <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="identifier">process_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>
7140<span class="special">};</span>
7141</pre>
7142</div>
7143<div class="section">
7144<div class="titlepage"><div><div><h5 class="title">
7145<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times_io"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_io" title="process_times Input/Output"><code class="computeroutput"><span class="identifier">process_times</span></code> Input/Output</a>
7146</h5></div></div></div>
7147<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
7148<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
7149<span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
7150        <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7151</pre>
7152<p>
7153            <span class="bold"><strong>Effects:</strong></span> Output each part separated
7154            by ';' and surrounded by '{', '}'.
7155          </p>
7156<p>
7157            <span class="bold"><strong>Throws:</strong></span> None.
7158          </p>
7159<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
7160<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span>
7161<span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">&gt;&amp;</span> <span class="identifier">is</span><span class="special">,</span>
7162        <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
7163</pre>
7164<p>
7165            <span class="bold"><strong>Effects:</strong></span> overrides the value of rhs
7166            if the input stream has the format "{r;u;s}". Otherwise, set
7167            the input stream state as failbit | eofbit.
7168          </p>
7169<p>
7170            <span class="bold"><strong>Throws:</strong></span> None.
7171          </p>
7172</div>
7173<div class="section">
7174<div class="titlepage"><div><div><h5 class="title">
7175<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times_duration_values"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_duration_values" title="duration_values Specialization for process_times&lt;&gt;"><code class="computeroutput"><span class="identifier">duration_values</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special">&lt;&gt;</span></code></a>
7176</h5></div></div></div>
7177<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">&gt;</span>
7178<span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a><span class="special">&lt;</span><span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="special">&gt;</span>
7179<span class="special">{</span>
7180    <span class="keyword">static</span> <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="identifier">zero</span><span class="special">();</span>
7181    <span class="keyword">static</span> <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="identifier">max</span><span class="special">();</span>
7182    <span class="keyword">static</span> <span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="identifier">min</span><span class="special">();</span>
7183<span class="special">};</span>
7184</pre>
7185<p>
7186            The <code class="computeroutput"><span class="identifier">times</span></code> specific functions
7187            <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code>,
7188            <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code>
7189            and <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code>
7190            uses the relative functions on the representation of each component.
7191          </p>
7192</div>
7193<div class="section">
7194<div class="titlepage"><div><div><h5 class="title">
7195<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_real_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_real_cpu_clock" title="clock_string&lt;process_real_cpu_clock&gt; Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_real_cpu_clock</span><span class="special">&gt;</span></code>
7196          Specialization</a>
7197</h5></div></div></div>
7198<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7199<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_real_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7200<span class="special">{</span>
7201    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
7202    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
7203<span class="special">};</span>
7204</pre>
7205<p>
7206            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
7207            returns "process_real_cpu_clock".
7208          </p>
7209<p>
7210            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
7211            returns " since process start-up"
7212          </p>
7213</div>
7214<div class="section">
7215<div class="titlepage"><div><div><h5 class="title">
7216<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_user_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_user_cpu_clock" title="clock_string&lt;process_user_cpu_clock&gt; Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_user_cpu_clock</span><span class="special">&gt;</span></code>
7217          Specialization</a>
7218</h5></div></div></div>
7219<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7220<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_user_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7221<span class="special">{</span>
7222    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
7223    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
7224<span class="special">};</span>
7225</pre>
7226<p>
7227            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
7228            returns "process_user_cpu_clock".
7229          </p>
7230<p>
7231            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
7232            returns " since process start-up"
7233          </p>
7234</div>
7235<div class="section">
7236<div class="titlepage"><div><div><h5 class="title">
7237<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_system_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_system_cpu_clock" title="clock_string&lt;process_system_cpu_clock&gt; Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_system_cpu_clock</span><span class="special">&gt;</span></code>
7238          Specialization</a>
7239</h5></div></div></div>
7240<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7241<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_system_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7242<span class="special">{</span>
7243    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
7244    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
7245<span class="special">};</span>
7246</pre>
7247<p>
7248            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
7249            returns "process_system_cpu_clock".
7250          </p>
7251<p>
7252            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
7253            returns " since process start-up"
7254          </p>
7255</div>
7256<div class="section">
7257<div class="titlepage"><div><div><h5 class="title">
7258<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_cpu_clock" title="clock_string&lt;process_cpu_clock&gt; Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_cpu_clock</span><span class="special">&gt;</span></code>
7259          Specialization</a>
7260</h5></div></div></div>
7261<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7262<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">process_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7263<span class="special">{</span>
7264    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
7265    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
7266<span class="special">};</span>
7267</pre>
7268<p>
7269            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
7270            returns "process_cpu_clock".
7271          </p>
7272<p>
7273            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
7274            returns " since process start-up"
7275          </p>
7276</div>
7277<div class="section">
7278<div class="titlepage"><div><div><h5 class="title">
7279<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times_numeric_limits"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_numeric_limits" title="numeric_limits Specialization for process_times&lt;&gt;"><code class="computeroutput"><span class="identifier">numeric_limits</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special">&lt;&gt;</span></code></a>
7280</h5></div></div></div>
7281<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span>
7282    <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
7283    <span class="keyword">class</span> <span class="identifier">numeric_limits</span><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_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;&gt;</span> <span class="special">{</span>
7284        <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">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span> <span class="identifier">Res</span><span class="special">;</span>
7285
7286    <span class="keyword">public</span><span class="special">:</span>
7287        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_specialized</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
7288        <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">min</span><span class="special">();</span>
7289        <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">max</span><span class="special">();</span>
7290        <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">lowest</span><span class="special">();</span>
7291        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">;</span>
7292        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits10</span><span class="special">;</span>
7293        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_signed</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">;</span>
7294        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_integer</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
7295        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_exact</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
7296        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">radix</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
7297    <span class="special">};</span>
7298<span class="special">}</span>
7299</pre>
7300<p>
7301            The <code class="computeroutput"><span class="identifier">process_times</span><span class="special">&lt;</span><span class="identifier">Rep</span><span class="special">&gt;</span></code>
7302            specialization functions <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code>, <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">lowest</span><span class="special">()</span></code> uses the relative functions on the
7303            representation of each component.
7304          </p>
7305<p>
7306            Notes
7307          </p>
7308<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
7309<li class="listitem">
7310                <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code>
7311                returns the tuple of mins.
7312              </li>
7313<li class="listitem">
7314                <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code>
7315                returns the tuple of maxs.
7316              </li>
7317<li class="listitem">
7318                <code class="computeroutput"><span class="identifier">lowest</span><span class="special">()</span></code>
7319                returns the tuple of lowests.
7320              </li>
7321<li class="listitem">
7322                <code class="computeroutput"><span class="identifier">digits</span></code> is the sum
7323                of (binary) digits.
7324              </li>
7325<li class="listitem">
7326                <code class="computeroutput"><span class="identifier">digits10</span></code> is the sum
7327                of digits10s.
7328              </li>
7329</ul></div>
7330</div>
7331</div>
7332<div class="section">
7333<div class="titlepage"><div><div><h4 class="title">
7334<a name="chrono.reference.other_clocks.thread_clock_hpp"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp" title="Header &lt;boost/chrono/thread_clock.hpp&gt;">Header
7335        <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">thread_clock</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
7336</h4></div></div></div>
7337<div class="toc"><dl class="toc">
7338<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_HAS_THREAD_CLOCK">Macro
7339          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span></code></a></span></dt>
7340<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_THREAD_CLOCK_IS_STEADY">Macro
7341          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span></code></a></span></dt>
7342<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock">Class
7343          <code class="computeroutput"><span class="identifier">thread_clock</span></code></a></span></dt>
7344<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.clock_string_thread_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">thread_clock</span><span class="special">&gt;</span></code>
7345          Specialization</a></span></dt>
7346</dl></div>
7347<p>
7348          Knowing the time a thread takes to execute is useful in both test and production
7349          environments.
7350        </p>
7351<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span>
7352<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span>
7353<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>
7354
7355    <span class="keyword">class</span> <span class="identifier">thread_clock</span><span class="special">;</span>
7356    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7357    <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">thread_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;;</span>
7358
7359<span class="special">}</span> <span class="special">}</span>
7360</pre>
7361<div class="section">
7362<div class="titlepage"><div><div><h5 class="title">
7363<a name="chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_HAS_THREAD_CLOCK"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_HAS_THREAD_CLOCK" title="Macro BOOST_CHRONO_HAS_THREAD_CLOCK">Macro
7364          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span></code></a>
7365</h5></div></div></div>
7366<p>
7367            This macro is defined if the platform supports thread clocks.
7368          </p>
7369</div>
7370<div class="section">
7371<div class="titlepage"><div><div><h5 class="title">
7372<a name="chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_THREAD_CLOCK_IS_STEADY"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_THREAD_CLOCK_IS_STEADY" title="Macro BOOST_CHRONO_THREAD_CLOCK_IS_STEADY">Macro
7373          <code class="computeroutput"><span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span></code></a>
7374</h5></div></div></div>
7375<p>
7376            This macro is defined if the platform has a thread clock. Its value is
7377            true if it is steady and false otherwise.
7378          </p>
7379</div>
7380<div class="section">
7381<div class="titlepage"><div><div><h5 class="title">
7382<a name="chrono.reference.other_clocks.thread_clock_hpp.thread_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock">Class
7383          <code class="computeroutput"><span class="identifier">thread_clock</span></code></a>
7384</h5></div></div></div>
7385<p>
7386            <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a> satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
7387            requirements.
7388          </p>
7389<p>
7390            <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a> class provides
7391            access to the real thread wall-clock, i.e. the real CPU-time clock of
7392            the calling thread. The thread relative current time can be obtained
7393            by calling <code class="computeroutput"><span class="identifier">thread_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>.
7394          </p>
7395<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">thread_clock</span> <span class="special">{</span>
7396<span class="keyword">public</span><span class="special">:</span>
7397    <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a>                          <span class="identifier">duration</span><span class="special">;</span>
7398    <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>
7399    <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>
7400    <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point&lt;&gt;"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&lt;</span><span class="identifier">thread_clock</span><span class="special">&gt;</span>     <span class="identifier">time_point</span><span class="special">;</span>
7401    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span>            <span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span><span class="special">;</span>
7402
7403    <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span>  <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
7404    <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>
7405<span class="special">};</span>
7406</pre>
7407</div>
7408<div class="section">
7409<div class="titlepage"><div><div><h5 class="title">
7410<a name="chrono.reference.other_clocks.thread_clock_hpp.clock_string_thread_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.clock_string_thread_clock" title="clock_string&lt;thread_clock&gt; Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">thread_clock</span><span class="special">&gt;</span></code>
7411          Specialization</a>
7412</h5></div></div></div>
7413<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span>
7414<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7415<span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">&lt;</span><span class="identifier">thread_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">&gt;</span>
7416<span class="special">{</span>
7417    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">name</span><span class="special">();</span>
7418    <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="identifier">since</span><span class="special">();</span>
7419<span class="special">};</span>
7420<span class="preprocessor">#endif</span>
7421</pre>
7422<p>
7423            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">name</span><span class="special">()</span></code>
7424            returns "thread_clock".
7425          </p>
7426<p>
7427            <code class="computeroutput"><span class="identifier">clock_string</span><span class="special">&lt;&gt;::</span><span class="identifier">since</span><span class="special">()</span></code>
7428            returns " since thread start-up"
7429          </p>
7430</div>
7431</div>
7432</div>
7433</div>
7434<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
7435<td align="left"></td>
7436<td align="right"><div class="copyright-footer">Copyright © 2008 Howard Hinnant<br>Copyright © 2006, 2008 Beman Dawes<br>Copyright © 2009-2013 Vicente J. Botet Escriba<p>
7437        Distributed under the Boost Software License, Version 1.0. (See accompanying
7438        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
7439      </p>
7440</div></td>
7441</tr></table>
7442<hr>
7443<div class="spirit-nav">
7444<a accesskey="p" href="users_guide.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../chrono.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
7445</div>
7446</body>
7447</html>
7448