1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
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 8. Boost.Chrono 2.0.5">
10 <link rel="prev" href="users_guide.html" title="User's Guide">
11 <link rel="next" href="appendices.html" title="Appendices">
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>
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>
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"><</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">></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>
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>
47 The documentation doesn't use these macros.
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 <boost/chrono/include.hpp>">Header <code class="computeroutput"><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">include</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
52 </h3></div></div></div>
54 Include all the chrono header files.
56 <pre class="programlisting"><span class="preprocessor">#include</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">></span>
57 <span class="preprocessor">#include</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_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
58 <span class="preprocessor">#include</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">process_cpu_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
59 <span class="preprocessor">#include</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">thread_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
60 <span class="preprocessor">#include</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">ceil</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
61 <span class="preprocessor">#include</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">floor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
62 <span class="preprocessor">#include</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">round</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></span></code></a></span></dt>
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 <boost/chrono.hpp>">Header <code class="computeroutput"><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">hpp</span><span class="special">></span></code></a>
86 </h4></div></div></div>
88 Include only the standard files.
90 <pre class="programlisting"><span class="preprocessor">#include</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">></span>
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 <boost/chrono/chrono.hpp>">Header <code class="computeroutput"><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">></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>
104 Include only the standard files.
106 <pre class="programlisting"><span class="preprocessor">#include</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">duration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
107 <span class="preprocessor">#include</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">time_point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
108 <span class="preprocessor">#include</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">system_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
109 <span class="preprocessor">#include</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">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">></span>
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
115 </h5></div></div></div>
117 At present, there is no know limitation respect to the C++11 standard.
120 The current implementation provides in addition:
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>.
127 <li class="listitem">
128 process and thread clocks.
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
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
141 </h6></div></div></div>
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.
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.
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.
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.
162 The default behavior is as <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_ARRAY_ASSERT</span></code>
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
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>
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.
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>
189 When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING</span></code>
190 is defined the lib don't provides the hybrid error handling prototypes:
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">&</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>
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.
199 By default <code class="computeroutput"><span class="identifier">BOOST_CHRONO_PROVIDE_HYBRID_ERROR_HANDLING</span></code>
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>
209 When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HEADER_ONLY</span></code>
210 is defined the lib is header-only.
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"><</span><span class="identifier">windows</span><span class="special">.</span><span class="identifier">h</span><span class="special">></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"><</span><span class="identifier">windows</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>.
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.
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
227 </h6></div></div></div>
229 Version 2.0.0 deprecates the preceding IO features.
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>.
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<system_clock,D> specialization limitation">time_point<system_clock,D>
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>
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:
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>
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:
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>
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.
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 <boost/chrono/duration.hpp>">Header <code class="computeroutput"><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">duration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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"><></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>
286 This file contains duration specific classes and non-member functions.
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>
291 <span class="keyword">template</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">=</span> <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special"><</span><span class="number">1</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">;</span>
293 <span class="special">}</span>
294 <span class="keyword">template</span> <span class="special"><</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">></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"><</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span>
296 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>;</span>
298 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
300 <span class="comment">// customization traits</span>
301 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></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<>"><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"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></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>
304 <span class="comment">// duration arithmetic</span>
305 <span class="keyword">template</span> <span class="special"><</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">></span>
306 <span class="keyword">constexpr</span>
307 <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
310 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
312 <span class="keyword">template</span> <span class="special"><</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">></span>
313 <span class="keyword">constexpr</span>
314 <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
317 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
319 <span class="keyword">template</span> <span class="special"><</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">></span>
320 <span class="keyword">constexpr</span>
321 <span class="identifier">duration</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">,</span>
324 <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&</span> <span class="identifier">s</span><span class="special">);</span>
326 <span class="keyword">template</span> <span class="special"><</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">></span>
327 <span class="keyword">constexpr</span>
328 <span class="identifier">duration</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></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">&</span> <span class="identifier">s</span><span class="special">,</span>
331 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
333 <span class="keyword">template</span> <span class="special"><</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">></span>
334 <span class="keyword">constexpr</span>
335 <span class="identifier">duration</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">,</span>
338 <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&</span> <span class="identifier">s</span><span class="special">);</span>
340 <span class="keyword">template</span> <span class="special"><</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">></span>
341 <span class="keyword">constexpr</span>
342 <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
345 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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"><</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">></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">&</span> <span class="identifier">s</span><span class="special">,</span>
353 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
354 <span class="preprocessor">#endif</span>
356 <span class="comment">// duration comparisons</span>
357 <span class="keyword">template</span> <span class="special"><</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">></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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
360 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
362 <span class="keyword">template</span> <span class="special"><</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">></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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
365 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
367 <span class="keyword">template</span> <span class="special"><</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">></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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
370 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
371 <span class="keyword">template</span> <span class="special"><</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">></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<=(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special"><=</span></code></a><span class="special">(</span>
373 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
374 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
376 <span class="keyword">template</span> <span class="special"><</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">></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>(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">></span></code></a><span class="special">(</span>
378 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
379 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
380 <span class="keyword">template</span> <span class="special"><</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">></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>=(duration,duration)"><code class="computeroutput"><span class="keyword">operator</span><span class="special">>=</span></code></a><span class="special">(</span>
382 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
383 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
385 <span class="comment">// duration_cast</span>
387 <span class="keyword">template</span> <span class="special"><</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">></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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
391 <span class="comment">// convenience typedefs</span>
392 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special"><</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">></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"><</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">></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"><</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">></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"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">></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"><</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"><</span> <span class="number">60</span><span class="special">></span> <span class="special">></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"><</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"><</span><span class="number">3600</span><span class="special">></span> <span class="special">></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>
399 <span class="special">}</span>
400 <span class="special">}</span>
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
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<>">Metafunction
410 <code class="computeroutput"><span class="identifier">treat_as_floating_point</span><span class="special"><></span></code></a>
411 </h6></div></div></div>
412 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></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"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="special">{};</span>
416 The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><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<>"><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<>"><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"><</span><span class="identifier">Rep</span><span class="special">>::</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<>"><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<>"><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<>"><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<>"><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
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"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></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>
448 The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><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.
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>
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.
471 <span class="bold"><strong>Remarks:</strong></span> The value returned corresponds
472 to the additive identity.
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>
483 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></code>.
486 <span class="bold"><strong>Remarks:</strong></span> The value returned compares
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>
498 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>::</span><span class="identifier">lowest</span><span class="special">()</span></code>.
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>.
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"><</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">></span>
512 <span class="keyword">struct</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="emphasis"><em>see bellow</em></span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
515 <span class="special">};</span>
518 The period of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>.
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<>"><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<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>s are involved (but
533 not truncation error).
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<>">Class
539 Template <code class="computeroutput"><span class="identifier">duration</span><span class="special"><></span></code></a>
540 </h5></div></div></div>
542 A <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><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<>"><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>.
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>
550 <span class="keyword">template</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">></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"><</span><span class="keyword">class</span> <span class="identifier">Rep2</span><span class="special">></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&)"><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">&</span> <span class="identifier">r</span><span class="special">);</span>
562 <span class="keyword">template</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">></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&)"><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"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
565 <span class="identifier">duration</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&)</span> <span class="special">=</span> <span class="keyword">default</span><span class="special">;</span>
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>
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">&</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">&</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>
576 <span class="identifier">duration</span><span class="special">&</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_plus_eq" title="Member Function operator+=(const 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">duration</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
577 <span class="identifier">duration</span><span class="special">&</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_minus_eq" title="Member Function operator-=(const 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">duration</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
579 <span class="identifier">duration</span><span class="special">&</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mult_eq" title="Member Function operator*=(const rep&)"><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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
580 <span class="identifier">duration</span><span class="special">&</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_div_eq" title="Member Function operator/=(const rep&)"><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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
581 <span class="identifier">duration</span><span class="special">&</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq" title="Member Function operator%=(const 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">rep</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
582 <span class="identifier">duration</span><span class="special">&</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq2" title="Member Function operator%=(const rep&)"><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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>
589 <span class="special">}}</span>
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<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>, compile diagnostic
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
605 <code class="computeroutput"><span class="identifier">Period</span><span class="special">::</span><span class="identifier">num</span></code> must be positive, compile diagnostic
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">long</span><span class="special">,</span> <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special"><</span><span class="number">60</span><span class="special">></span> <span class="special">></span></code> holds a count of minutes using
616 <li class="listitem">
617 <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">long</span> <span class="keyword">long</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">></span></code> holds a count of milliseconds
620 <li class="listitem">
621 <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">double</span><span class="special">,</span>
622 <code class="computeroutput"><span class="identifier">ratio</span></code><span class="special"><</span><span class="number">1</span><span class="special">,</span> <span class="number">30</span><span class="special">></span> <span class="special">></span></code> holds a count using a double
623 with a tick period of 1/30 second (a tick frequency of 30 Hz).
627 The following members of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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.
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>
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<>"><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"><</span><span class="identifier">rep</span><span class="special">>::</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.
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&)">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">&)</span></code></a>
649 </h6></div></div></div>
650 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep2</span><span class="special">></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">&</span> <span class="identifier">r</span><span class="special">);</span>
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>,
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"><</span><span class="identifier">rep</span><span class="special">>::</span><span class="identifier">value</span></code>
661 is <code class="computeroutput"><span class="keyword">true</span></code>, or
663 <li class="listitem">
664 <code class="computeroutput"><span class="special">!</span><span class="identifier">treat_as_floating_point</span><span class="special"><</span><span class="identifier">rep</span><span class="special">>::</span><span class="identifier">value</span>
665 <span class="special">&&</span> <span class="special">!</span><span class="identifier">treat_as_floating_point</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">value</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
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<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
676 <span class="bold"><strong>Example:</strong></span>
678 <pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">></span> <span class="identifier">d</span><span class="special">(</span><span class="number">3</span><span class="special">);</span> <span class="comment">// ok</span>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
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"><</span><span class="identifier">rep</span><span class="special">>(</span><span class="identifier">r</span><span class="special">)</span></code>.
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&)">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">&)</span></code></a>
693 </h6></div></div></div>
694 <pre class="programlisting"><span class="keyword">template</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">></span>
695 <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
698 <span class="bold"><strong>Remarks:</strong></span> <code class="computeroutput"><span class="identifier">treat_as_floating_point</span><span class="special"><</span><span class="identifier">rep</span><span class="special">>::</span><span class="identifier">value</span></code>,
699 or <code class="computeroutput"><span class="identifier">ratio_divide</span><span class="special"><</span><span class="identifier">Period2</span><span class="special">,</span>
700 <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>
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<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
708 <span class="bold"><strong>Example:</strong></span>
710 <pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">micro</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">milli</span><span class="special">></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>
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<>"><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"><</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">>(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span></code>.
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>
728 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span></code>.
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<>"><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>
740 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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<>"><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>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(-</span><span class="identifier">rep_</span><span class="special">)</span></code>.
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
763 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">++</span><span class="identifier">rep_</span></code>.
766 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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<>"><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>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><span class="identifier">rep_</span><span class="special">++)</span></code>.
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span>
788 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">--</span><span class="identifier">rep_</span></code>.
791 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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<>"><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>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><span class="identifier">rep_</span><span class="special">--)</span></code>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
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>.
817 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
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>.
832 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
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>.
847 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
862 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
877 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
892 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">zero</span><span class="special">();</span>
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<>"><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"><</span><span class="identifier">rep</span><span class="special">>::</span><span class="identifier">zero</span><span class="special">())</span></code>.
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">min</span><span class="special">();</span>
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<>"><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"><</span><span class="identifier">rep</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()).</span></code>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">max</span><span class="special">();</span>
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<>"><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"><</span><span class="identifier">rep</span><span class="special">>::</span><span class="identifier">max</span><span class="special">())</span></code>.
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"><</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">></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"><</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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
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"><</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">></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"><</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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
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"><</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">></span>
971 <span class="keyword">constexpr</span>
972 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&</span> <span class="identifier">s</span><span class="special">);</span>
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>.
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
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"><</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">></span>
995 <span class="keyword">constexpr</span>
996 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span>
997 <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">Rep1</span><span class="special">&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
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>.
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>.
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"><</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">></span>
1018 <span class="keyword">constexpr</span>
1019 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&</span> <span class="identifier">s</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
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.
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"><</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">></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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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<>"><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>.
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>
1060 Included only if BOOST_CHRONO_EXTENSIONS is defined.
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>.
1066 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></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">&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
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<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><CR,Period>.
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.
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"><</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">></span>
1091 <span class="keyword">constexpr</span>
1092 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Rep2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Rep2</span><span class="special">&</span> <span class="identifier">s</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
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
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"><</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">></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"><</span><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1120 <span class="bold"><strong>Remarks:</strong></span> This function will not participate
1121 in overload resolution unless
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.
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"><</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">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> arguments.
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>
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"><</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">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
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<(duration,duration)">Non-Member
1169 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>
1170 </h6></div></div></div>
1171 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
1172 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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<>"><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"><</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>
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<=(duration,duration)">Non-Member
1186 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>
1187 </h6></div></div></div>
1188 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
1189 <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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1193 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">rhs</span> <span class="special"><</span>
1194 <span class="identifier">lhs</span><span class="special">)</span></code>.
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>(duration,duration)">Non-Member
1200 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>
1201 </h6></div></div></div>
1202 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
1203 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1207 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rhs</span>
1208 <span class="special"><</span> <span class="identifier">lhs</span></code>.
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>=(duration,duration)">Non-Member
1214 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>
1215 </h6></div></div></div>
1216 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
1217 <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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1221 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special"><</span>
1222 <span class="identifier">rhs</span><span class="special">)</span></code>.
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"><</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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">></span>
1232 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
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"><</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">>::</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>.
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"><</span><span class="keyword">typename</span>
1252 <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">>(</span><span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()))</span>
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"><</span><span class="keyword">typename</span>
1260 <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">>(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">CR</span><span class="special">>(</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"><</span><span class="identifier">CR</span><span class="special">>(</span><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span><span class="special">)))</span></code>
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"><</span><span class="keyword">typename</span>
1268 <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">>(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">CR</span><span class="special">>(</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"><</span><span class="identifier">CR</span><span class="special">>(</span><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span><span class="special">)))</span></code>
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"><</span><span class="keyword">typename</span>
1273 <span class="identifier">ToDuration</span><span class="special">::</span><span class="identifier">rep</span><span class="special">>(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">CR</span><span class="special">>(</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"><</span><span class="identifier">CR</span><span class="special">>(</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"><</span><span class="identifier">CR</span><span class="special">>(</span><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span><span class="special">)))</span></code>
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.
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</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">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</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">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</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">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_least64_t</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</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"><</span> <span class="number">60</span><span class="special">></span> <span class="special">></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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</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"><</span><span class="number">3600</span><span class="special">></span> <span class="special">></span> <span class="identifier">hours</span><span class="special">;</span> <span class="comment">// at least 23 bits needed</span>
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>
1305 </h4></div></div></div>
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<>"><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<>"><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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>. A clock must meet
1309 the requirements in the following Table.
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.).
1320 <a name="chrono.reference.cpp0x.clock.clock_requirements"></a><p class="title"><b>Table 8.1. Clock Requirements</b></p>
1321 <div class="table-contents"><table class="table" summary="Clock Requirements">
1340 operational semantics
1348 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">rep</span></code>
1353 An arithmetic type or class emulating an arithmetic type.
1358 The representation type of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>.
1365 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">period</span></code>
1370 <code class="computeroutput"><span class="identifier">ratio</span></code>
1375 The tick period of the clock in seconds.
1382 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">duration</span></code>
1387 <code class="computeroutput"><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</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">></span></code>
1393 The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> type of the
1394 <code class="computeroutput"><span class="identifier">clock</span></code>.
1401 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1406 <code class="computeroutput"><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">C1</span><span class="special">></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"><</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">></span></code>
1412 The <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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<>"><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<>"><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.
1424 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">is_steady</span></code>
1429 <code class="computeroutput"><span class="keyword">constexpr</span> <span class="keyword">bool</span></code>
1434 <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">t1</span> <span class="special"><=</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
1444 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>
1449 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1454 Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> representing
1455 the current point in time.
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>:
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>
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>
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>
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>
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>
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>
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>
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>
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>
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:
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,
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
1514 <div class="note"><table border="0" summary="Note">
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>
1519 <tr><td align="left" valign="top"><p>
1520 This means, in particular, that operations on these types will not throw
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>
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
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.
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>:
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>
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>
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>
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>
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>
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>
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>
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>
1570 </h4></div></div></div>
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
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
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.
1583 <li class="listitem">
1584 the added now() function is thread-safe.
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>.
1592 <a name="chrono.reference.cpp0x.ecclock.clock_requirements"></a><p class="title"><b>Table 8.2. Clock Requirements</b></p>
1593 <div class="table-contents"><table class="table" summary="Clock Requirements">
1612 operational semantics
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>
1625 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1630 Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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.
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>
1644 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code>
1649 Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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.
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>:
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>
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>
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>
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>
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>
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>
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>
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>
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 <boost/chrono/time_point.hpp>">Header <code class="computeroutput"><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">time_point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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"><></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>
1702 This file contains <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> specific classes and
1703 non-member functions.
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>
1708 <span class="keyword">template</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<>"><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">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">;</span>
1711 <span class="special">}</span>
1712 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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"><</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>,</span>
1714 <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">></span> <span class="special">>;</span>
1716 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
1718 <span class="comment">// time_point arithmetic</span>
1719 <span class="keyword">template</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<>"><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">></span>
1720 <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">Duration1</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span><span class="special">></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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
1722 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1724 <span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span>
1725 <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span> <span class="identifier">Duration2</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></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"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1729 <span class="keyword">template</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<>"><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">></span>
1730 <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">Duration1</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span><span class="special">></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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
1732 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1734 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span>
1735 <span class="keyword">constexpr</span> <span class="keyword">typename</span> <span class="identifier">common_type</span><span class="special"><</span><span class="identifier">Duration1</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>::</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1739 <span class="comment">// time_point comparisons</span>
1740 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1744 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1748 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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<(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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1752 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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<=(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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1756 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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>(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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1760 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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>=(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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration1</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
1765 <span class="comment">// time_point_cast</span>
1766 <span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
1767 <span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">ToDuration</span><span class="special">></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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">t</span><span class="special">);</span>
1770 <span class="special">}</span>
1771 <span class="special">}</span>
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"><</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span>
1778 <span class="keyword">struct</span> <code class="computeroutput"><span class="identifier">common_type</span></code><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>,</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span> <span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
1781 <span class="special">};</span>
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<>"><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<>"><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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>s.
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<>">Class
1792 template <code class="computeroutput"><span class="identifier">time_point</span><span class="special"><></span></code></a>
1793 </h5></div></div></div>
1795 A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> represents a point
1796 in time with respect to a specific clock.
1798 <pre class="programlisting"><span class="keyword">template</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></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>
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&)"><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">&</span> <span class="identifier">d</span><span class="special">);</span>
1812 <span class="comment">// conversions</span>
1813 <span class="keyword">template</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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&)"><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"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">t</span><span class="special">);</span>
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>
1820 <span class="comment">// arithmetic</span>
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">&</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">&</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>
1830 <span class="identifier">time_point</span><span class="special">&</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">&</span> <span class="identifier">d</span><span class="special">);</span>
1831 <span class="identifier">time_point</span><span class="special">&</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&)"><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">&</span> <span class="identifier">d</span><span class="special">);</span>
1832 <span class="preprocessor">#endif</span>
1834 <span class="identifier">time_point</span><span class="special">&</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">&</span> <span class="identifier">d</span><span class="special">);</span>
1835 <span class="identifier">time_point</span><span class="special">&</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">&</span> <span class="identifier">d</span><span class="special">);</span>
1837 <span class="comment">// special values</span>
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>
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.
1847 Duration must be an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>, compile diagnostic
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>
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<>"><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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> represents the
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&)">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">&)</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">&</span> <span class="identifier">d</span><span class="special">);</span>
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<>"><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<>"><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>.
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&)">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">&)</span></code></a>
1883 </h6></div></div></div>
1884 <pre class="programlisting"><span class="keyword">template</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">t</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
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<>"><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>.
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>
1907 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">d_</span></code>.
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<>"><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>
1919 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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<>"><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>
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<>"><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>.
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
1942 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">++</span><span class="identifier">d_</span></code>.
1945 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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<>"><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>
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<>"><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>.
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span>
1967 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">--</span><span class="identifier">d_</span></code>.
1970 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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<>"><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>
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<>"><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>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&</span> <span class="identifier">r</span><span class="special">);</span>
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>.
1996 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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&)">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">&)</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">rep</span><span class="special">&</span> <span class="identifier">r</span><span class="special">);</span>
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>
2011 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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">&</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
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>.
2026 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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">&</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
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>
2041 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
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>
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>.
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>
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>.
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"><</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<>"><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">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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"><</span><span class="identifier">Duration1</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
2080 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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.
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"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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"><</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>,</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>::</span><span class="identifier">type</span><span class="special">></span>
2096 <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep1</span><span class="special">,</span> <span class="identifier">Period1</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
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"><</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<>"><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">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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"><</span><span class="identifier">Duration1</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span><span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span>
2113 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">,</span> <span class="identifier">Period2</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
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"><</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>::</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
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"><</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
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"><</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
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>.
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<(time_point,time_point)">Non-Member
2172 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>
2173 </h6></div></div></div>
2174 <pre class="programlisting"><span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span>
2175 <span class="keyword">constexpr</span>
2176 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
2180 <span class="bold"><strong>Returns:</strong></span> lhs.time_since_epoch() <
2181 rhs.time_since_epoch().
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<=(time_point,time_point)">Non-Member
2187 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>
2188 </h6></div></div></div>
2189 <pre class="programlisting"><span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span>
2190 <span class="keyword">constexpr</span>
2191 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
2195 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">rhs</span> <span class="special"><</span>
2196 <span class="identifier">lhs</span><span class="special">)</span></code>.
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>(time_point,time_point)">Non-Member
2202 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>
2203 </h6></div></div></div>
2204 <pre class="programlisting"><span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span>
2205 <span class="keyword">constexpr</span>
2206 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
2210 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rhs</span>
2211 <span class="special"><</span> <span class="identifier">lhs</span></code>.
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>=(time_point,time_point)">Non-Member
2217 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>
2218 </h6></div></div></div>
2219 <pre class="programlisting"><span class="keyword">template</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<>"><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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">></span>
2220 <span class="keyword">constexpr</span>
2221 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration1</span></code></a><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration2</span></code></a><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
2225 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special"><</span>
2226 <span class="identifier">rhs</span><span class="special">)</span></code>.
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"><</span><span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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">></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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">t</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>.
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</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">>(</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="identifier">ToDuration</span><span class="special">>(</span><span class="identifier">t</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()))</span></code>.
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 <boost/chrono/system_clocks.hpp>">Header <code class="computeroutput"><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">system_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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"><</span><span class="identifier">system_clock</span><span class="special">></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"><</span><span class="identifier">steady_clock</span><span class="special">></span></code>
2265 Specialization</a></span></dt>
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
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>
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>
2279 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
2280 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">system_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>;</span>
2281 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
2282 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">steady_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>;</span>
2284 <span class="special">}</span>
2285 <span class="special">}</span>
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>
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).
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
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">&</span> <span class="identifier">t</span><span class="special">);</span>
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.
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</span><span class="identifier">system_clock</span><span class="special">></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>
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">&</span> <span class="identifier">ec</span><span class="special">);</span>
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">&</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>
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>
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"><</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>.
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
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">&</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
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>.
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>
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<>"><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<>"><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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> and <code class="computeroutput"><span class="identifier">time_t</span></code>.
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>
2380 Defined if the platform support steady clocks.
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>
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>
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.
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</span><span class="identifier">steady_clock</span><span class="special">></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>
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">&</span> <span class="identifier">ec</span><span class="special">);</span>
2409 <span class="special">};</span>
2410 <span class="preprocessor">#endif</span>
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>
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>
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>
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<system_clock> Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">system_clock</span><span class="special">></span></code>
2434 </h5></div></div></div>
2435 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
2436 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">system_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
2440 <span class="special">};</span>
2443 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
2444 returns "system_clock".
2447 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
2448 returns " since Jan 1, 1970"
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<steady_clock> Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">steady_clock</span><span class="special">></span></code>
2455 </h5></div></div></div>
2456 <pre class="programlisting"><span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span>
2458 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
2459 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">steady_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
2463 <span class="special">};</span>
2464 <span class="preprocessor">#endif</span>
2467 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
2468 returns "steady_clock".
2471 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
2472 returns " since boot"
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 <boost/chrono/clock_strings.hpp>">Header <code class="computeroutput"><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">clock_strings</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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"><></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>
2485 <span class="keyword">template</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> <span class="identifier">CharT</span><span class="special">></span>
2486 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">;</span>
2488 <span class="special">}</span>
2489 <span class="special">}</span>
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<>">Template
2494 Class <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><></span></code></a>
2495 </h5></div></div></div>
2496 <pre class="programlisting"><span class="keyword">template</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> <span class="identifier">CharT</span><span class="special">></span>
2497 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special">;</span>
2500 This template must be specialized for specific clocks. The specialization
2501 must define the following functions
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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
2507 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
2508 return the clock name, which usually corresponds to the class name.
2511 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
2512 return the textual format of the clock epoch.
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 <boost/chrono/typeof/boost/chrono/chrono.hpp>">Header <code class="computeroutput"><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">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">></span></code></a>
2519 </h4></div></div></div>
2521 Register <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><code class="computeroutput"><span class="special"><></span></code>
2522 and <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><code class="computeroutput"><span class="special"><></span></code>
2523 class templates to <span class="bold"><strong>Boost.Typeof</strong></span>.
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"><</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">></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 <boost/chrono/chrono_io.hpp>">Header <code class="computeroutput"><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_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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"><></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>
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>
2547 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
2548 <span class="keyword">class</span> <span class="identifier">duration_punct</span><span class="special">;</span>
2550 <span class="keyword">template</span> <span class="special"><</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>
2551 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">);</span>
2554 <span class="keyword">template</span> <span class="special"><</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>
2555 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">);</span>
2558 <span class="keyword">template</span> <span class="special"><</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">></span>
2559 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2560 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
2562 <span class="keyword">template</span> <span class="special"><</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">></span>
2563 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2564 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">)</span>
2566 <span class="keyword">template</span> <span class="special"><</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">></span>
2567 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2568 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
2571 <span class="keyword">template</span> <span class="special"><</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">></span>
2572 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2573 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
2574 <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
2576 <span class="special">}</span>
2577 <span class="special">}</span>
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<>">Template
2582 Class <code class="computeroutput"><span class="identifier">duration_punct</span><span class="special"><></span></code></a>
2583 </h5></div></div></div>
2585 The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><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<>"><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<>"><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<>"><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).
2593 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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>
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>
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>
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">&</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">&</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">&</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">&</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">&</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">&</span> <span class="identifier">short_hours</span><span class="special">);</span>
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">&</span> <span class="identifier">d</span><span class="special">);</span>
2612 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Period</span><span class="special">></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"><</span><span class="keyword">class</span> <span class="identifier">Period</span><span class="special">></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"><</span><span class="keyword">class</span> <span class="identifier">Period</span><span class="special">></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>
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>
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
2625 </h5></div></div></div>
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.
2630 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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>
2631 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">);</span>
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<>"><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<>"><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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>s as abbreviations.
2639 <span class="bold"><strong>Returns:</strong></span> the output stream
2641 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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>
2642 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet to stream
2647 durations and time_points as long text.
2650 <span class="bold"><strong>Returns:</strong></span> the output stream
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>
2659 Any <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><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<>"><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<>"><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"><></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<>"><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<>"><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<>"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> will be added
2668 to the stream's locale.
2671 A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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<>"><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<>"><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
2677 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
2678 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2679 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
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<>"><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<>"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet.
2686 <span class="bold"><strong>Returns:</strong></span> the output stream
2688 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
2689 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2690 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">)</span>
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<>"><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>.
2697 <span class="bold"><strong>Returns:</strong></span> the input stream
2699 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
2700 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2701 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
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<>"><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<>"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet.
2709 <span class="bold"><strong>Returns:</strong></span> the output stream
2711 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
2712 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
2713 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
2714 <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
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<>"><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>.
2721 <span class="bold"><strong>Returns:</strong></span> the input stream
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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></span></code></a></span></dt>
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 <boost/chrono/chrono_io.hpp>">Header <code class="computeroutput"><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_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
2747 </h4></div></div></div>
2749 This file includes the i/o of the two major components, duration and time_point.
2751 <pre class="programlisting"><span class="preprocessor">#include</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">io</span><span class="special">/</span><span class="identifier">duration_style</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
2752 <span class="preprocessor">#include</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">io</span><span class="special">/</span><span class="identifier">timezone</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
2753 <span class="preprocessor">#include</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">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">></span>
2754 <span class="preprocessor">#include</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">io</span><span class="special">/</span><span class="identifier">duration_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
2755 <span class="preprocessor">#include</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">io</span><span class="special">/</span><span class="identifier">duration_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
2756 <span class="preprocessor">#include</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">io</span><span class="special">/</span><span class="identifier">duration_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
2757 <span class="preprocessor">#include</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">io</span><span class="special">/</span><span class="identifier">duration_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
2758 <span class="preprocessor">#include</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">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">></span>
2759 <span class="preprocessor">#include</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">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">></span>
2760 <span class="preprocessor">#include</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">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">></span>
2761 <span class="preprocessor">#include</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">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">></span>
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 <boost/chrono/io/duration_style.hpp>">Header <code class="computeroutput"><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">io</span><span class="special">/</span><span class="identifier">duration_style</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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>
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>
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>
2790 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> unit names come in
2791 two varieties: prefix and symbol.
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 <boost/chrono/io/timezone.hpp>">Header <code class="computeroutput"><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">io</span><span class="special">/</span><span class="identifier">timezone</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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>
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>
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>
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 <boost/chrono/io/ios_base_state.hpp>">Header <code class="computeroutput"><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">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">></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>
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>
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 &)"><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">&</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 &,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">&</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>
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&)"><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">&</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&,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">&</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">);</span>
2844 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">></span>
2845 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></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 &)"><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">&</span> <span class="identifier">ios</span><span class="special">);</span>
2846 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">></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&, std::basic_string<CharT> const&)"><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">&</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">fmt</span><span class="special">);</span>
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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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<>"><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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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<>"><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>
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
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 &)">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">&)</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">&</span> <span class="identifier">ios</span><span class="special">);</span>
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>.
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 &,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">&,</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">&</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>
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.
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&)">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">&)</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">&</span> <span class="identifier">ios</span><span class="special">);</span>
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>.
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&,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">&,</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">&</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">);</span>
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.
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 &)">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">&)</span></code></a>
2918 </h6></div></div></div>
2919 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">></span>
2920 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></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">&</span> <span class="identifier">ios</span><span class="special">);</span>
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>.
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&, std::basic_string<CharT> const&)">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">&,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</span><span class="special">&)</span></code></a>
2931 </h6></div></div></div>
2932 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">></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">&</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">fmt</span><span class="special">);</span>
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.
2941 The format is composed of zero or more directives. Each directive is
2942 composed of one of the following:
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>
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:
2956 <a name="chrono.reference.io.ios_state_hpp.sag.set_time_fmt.format_tags"></a><p class="title"><b>Table 8.3. Format tags</b></p>
2957 <div class="table-contents"><table class="table" summary="Format tags">
2984 <code class="computeroutput"><span class="special">%%</span></code>
2989 Replaced by <code class="computeroutput"><span class="special">%</span></code>.
3001 <code class="computeroutput"><span class="special">%</span><span class="identifier">a</span>
3002 <span class="special">%</span><span class="identifier">A</span></code>
3007 The day of the week, using the locale's weekday names; either
3008 the abbreviated or full name may be specified.
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>
3027 The month, using the locale's month names; either the abbreviated
3028 or full name may be specified.
3040 <code class="computeroutput"><span class="special">%</span><span class="identifier">c</span></code>
3057 <code class="computeroutput"><span class="special">%</span><span class="identifier">d</span>
3058 <span class="special">%</span><span class="identifier">e</span></code>
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..
3076 <code class="computeroutput"><span class="special">%</span><span class="identifier">D</span></code>
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>.
3093 <code class="computeroutput"><span class="special">%</span><span class="identifier">F</span></code>
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>.
3110 <code class="computeroutput"><span class="special">%</span><span class="identifier">H</span></code>
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.
3128 <code class="computeroutput"><span class="special">%</span><span class="identifier">I</span></code>
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.
3146 <code class="computeroutput"><span class="special">%</span><span class="identifier">j</span></code>
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.
3164 <code class="computeroutput"><span class="special">%</span><span class="identifier">m</span></code>
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..
3182 <code class="computeroutput"><span class="special">%</span><span class="identifier">M</span></code>
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.
3200 <code class="computeroutput"><span class="special">%</span><span class="identifier">n</span>
3201 <span class="special">%</span><span class="identifier">t</span></code>
3218 <code class="computeroutput"><span class="special">%</span><span class="identifier">p</span></code>
3235 <code class="computeroutput"><span class="special">%</span><span class="identifier">r</span></code>
3252 <code class="computeroutput"><span class="special">%</span><span class="identifier">R</span></code>
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>.
3269 <code class="computeroutput"><span class="special">%</span><span class="identifier">S</span></code>
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.
3287 <code class="computeroutput"><span class="special">%</span><span class="identifier">T</span></code>
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>.
3304 <code class="computeroutput"><span class="special">%</span><span class="identifier">U</span></code>
3321 <code class="computeroutput"><span class="special">%</span><span class="identifier">w</span></code>
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
3340 <code class="computeroutput"><span class="special">%</span><span class="identifier">W</span></code>
3357 <code class="computeroutput"><span class="special">%</span><span class="identifier">x</span></code>
3362 The date, using the locale's date format..
3374 <code class="computeroutput"><span class="special">%</span><span class="identifier">X</span></code>
3391 <code class="computeroutput"><span class="special">%</span><span class="identifier">y</span></code>
3408 <code class="computeroutput"><span class="special">%</span><span class="identifier">Y</span></code>
3413 The year, including the century (for example, 1988).
3425 <br class="table-break">
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
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>
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>
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&)"><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">&</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&, 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">&</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>
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>.
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&)">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">&)</span></code></a>
3459 </h6></div></div></div>
3461 This constructor takes a stream object and saves a reference to the
3462 stream and the current value of a particular stream attribute.
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">&</span><span class="identifier">s</span><span class="special">);</span>
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>.
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&, 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">&,</span> <span class="identifier">aspect_type</span><span class="special">)</span></code></a>
3475 </h6></div></div></div>
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
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">&</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>
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>.
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>
3496 The destructor restores the stream's attribute to the saved value.
3498 <pre class="programlisting"><span class="special">~</span><span class="identifier">duration_style_io_saver</span><span class="special">();</span>
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>().
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>
3510 The restoration can be activated early (and often) with the restore
3513 <pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span>
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
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<>">Template
3525 Class <code class="computeroutput"><span class="identifier">timezone_io_saver</span><span class="special"><></span></code></a>
3526 </h6></div></div></div>
3527 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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<>"><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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></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>
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&)"><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">&</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&, 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">&</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>
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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></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.
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&)">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">&)</span></code></a>
3551 </h6></div></div></div>
3553 This constructor takes a stream object and saves a reference to the
3554 stream and the current value of a particular stream attribute.
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">&</span><span class="identifier">s</span><span class="special">);</span>
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<>"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a> by storing
3560 <code class="computeroutput"><span class="identifier">s</span></code>.
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&, 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">&,</span>
3567 <span class="identifier">aspect_type</span><span class="special">)</span></code></a>
3568 </h6></div></div></div>
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
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">&</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>
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<>"><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>.
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>
3588 The destructor restores the stream's attribute to the saved value.
3590 <pre class="programlisting"><span class="special">~</span><span class="identifier">timezone_io_saver</span><span class="special">();</span>
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>().
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>
3602 The restoration can be activated early (and often) with the restore
3605 <pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span>
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
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<>">Template
3617 Class <code class="computeroutput"><span class="identifier">time_fmt_io_saver</span><span class="special"><></span></code></a>
3618 </h6></div></div></div>
3619 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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<>"><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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span>
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&)"><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">&</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&, 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">&</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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>
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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></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.
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&)">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">&)</span></code></a>
3642 </h6></div></div></div>
3644 This constructor takes a stream object and saves a reference to the
3645 stream and the current value of a particular stream attribute.
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">&</span><span class="identifier">s</span><span class="special">);</span>
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<>"><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>.
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&, 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">&,</span>
3658 <span class="identifier">aspect_type</span><span class="special">)</span></code></a>
3659 </h6></div></div></div>
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
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">&</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>
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<>"><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>.
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>
3679 The destructor restores the stream's attribute to the saved value.
3681 <pre class="programlisting"><span class="special">~</span><span class="identifier">time_fmt_io_saver</span><span class="special">();</span>
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>().
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>
3693 The restoration can be activated early (and often) with the restore
3696 <pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span>
3699 <span class="bold"><strong>Effects:</strong></span> Restores the stream's time
3700 format attribute to the saved value.
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 <boost/chrono/io/duration_get.hpp>">Header <code class="computeroutput"><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">io</span><span class="special">/</span><span class="identifier">duration_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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>
3715 <span class="keyword">template</span> <span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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>
3718 <span class="special">}</span>
3719 <span class="special">}</span>
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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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>
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>
3736 <span class="keyword">template</span> <span class="special"><</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">></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&,std::ios_base::iostate&,duration<Rep,Period>&,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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
3742 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</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>
3747 <span class="keyword">template</span> <span class="special"><</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">></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&,std::ios_base::iostate&,duration<Rep,Period>&) 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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
3753 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span>
3754 <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
3756 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">></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&,std::ios_base::iostate&,Rep&) 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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
3762 <span class="identifier">Rep</span><span class="special">&</span> <span class="identifier">r</span>
3763 <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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&,std::ios_base::iostate&,rt_ratio&) 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">&</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">&</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">&</span><span class="identifier">rt</span>
3771 <span class="special">)</span> <span class="keyword">const</span>
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>
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>
3779 <span class="special">};</span>
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.
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>
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.
3803 <span class="bold"><strong>Parameters:</strong></span>
3805 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
3806 <span class="bold"><strong>refs:</strong></span> references
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.
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>
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.
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&,std::ios_base::iostate&,duration<Rep,Period>&,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">&,</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">&,</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span><span class="identifier">Period</span><span class="special">>&,</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"><</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
3838 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="special">&</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>
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>.
3845 <span class="bold"><strong>Parameters:</strong></span>
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
3851 <li class="listitem">
3852 <span class="bold"><strong>end:</strong></span> end input stream iterator
3854 <li class="listitem">
3855 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
3857 <li class="listitem">
3858 <span class="bold"><strong>err:</strong></span> the ios_base state
3860 <li class="listitem">
3861 <span class="bold"><strong>d:</strong></span> the duration
3863 <li class="listitem">
3864 <span class="bold"><strong>pattern:</strong></span> begin of the formatting
3867 <li class="listitem">
3868 <span class="bold"><strong>pat_end:</strong></span> end of the formatting
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.
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>.
3883 Then it computes an intermediate representation based on <code class="computeroutput"><span class="identifier">Rep</span></code> according to the following rules:
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>.
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>.
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
3900 <li class="listitem">
3901 Else intermediate representation is <code class="computeroutput"><span class="identifier">Rep</span></code>.
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.
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
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>.
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>
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>.
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.
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.
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>.
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>.
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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span></code>
3991 which is assigned to <code class="computeroutput"><span class="identifier">d</span></code>.
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.
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&,std::ios_base::iostate&,duration<Rep,Period>&) 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">&,</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">&,</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span><span class="identifier">Period</span><span class="special">>&)</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"><</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
4011 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span>
4012 <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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.
4019 <span class="bold"><strong>Parameters:</strong></span>
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
4025 <li class="listitem">
4026 <span class="bold"><strong>end:</strong></span> end input stream iterator
4028 <li class="listitem">
4029 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4031 <li class="listitem">
4032 <span class="bold"><strong>err:</strong></span> the ios_base state
4034 <li class="listitem">
4035 <span class="bold"><strong>d:</strong></span> the duration
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
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>
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.
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&,std::ios_base::iostate&,Rep&) 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">&,</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">&,</span><span class="identifier">Rep</span><span class="special">&)</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"><</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">Rep</span><span class="special">&</span> <span class="identifier">r</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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>.
4064 <span class="bold"><strong>Parameters:</strong></span>
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
4070 <li class="listitem">
4071 <span class="bold"><strong>end:</strong></span> end input stream iterator
4073 <li class="listitem">
4074 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4076 <li class="listitem">
4077 <span class="bold"><strong>err:</strong></span> the ios_base state
4079 <li class="listitem">
4080 <span class="bold"><strong>r:</strong></span> a reference to the duration
4085 <span class="bold"><strong>Effects:</strong></span> As if
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"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span><span class="special"><</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">iter_type</span><span class="special">>>(</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>
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>
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&,std::ios_base::iostate&,rt_ratio&) 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">&,</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">&,</span><span class="identifier">rt_ratio</span><span class="special">&)</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">&</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">&</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">&</span><span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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>.
4108 <span class="bold"><strong>Parameters:</strong></span>
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
4114 <li class="listitem">
4115 <span class="bold"><strong>end:</strong></span> end input stream iterator
4117 <li class="listitem">
4118 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4120 <li class="listitem">
4121 <span class="bold"><strong>err:</strong></span> the ios_base state
4123 <li class="listitem">
4124 <span class="bold"><strong>rt:</strong></span> a reference to the duration
4129 <span class="bold"><strong>Effects:</strong></span>
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>.
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
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>
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
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>
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.
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<CharT> const&,iter_type,iter_type,std::ios_base&,std::ios_base::iostate&) 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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</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">&,</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">&)</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</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">&,</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">&</span> <span class="identifier">err</span>
4174 <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4177 Extracts the run-time ratio associated to the duration when it is given
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.
4186 <span class="bold"><strong>Parameters:</strong></span>
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
4192 <li class="listitem">
4193 <span class="bold"><strong>end:</strong></span> end input stream iterator
4195 <li class="listitem">
4196 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4198 <li class="listitem">
4199 <span class="bold"><strong>err:</strong></span> the ios_base state
4201 <li class="listitem">
4202 <span class="bold"><strong>rt:</strong></span> a reference to the duration
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>.
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.
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<CharT> const&,iter_type,iter_type,std::ios_base&,std::ios_base::iostate&,detail::rt_ratio&) 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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</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">&,</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">&,</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">rt_ratio</span><span class="special">&)</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</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">&,</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">&</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">&</span><span class="identifier">rt</span>
4230 <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4233 Extracts the run-time ratio associated to the duration when it is given
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.
4242 <span class="bold"><strong>Parameters:</strong></span>
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
4248 <li class="listitem">
4249 <span class="bold"><strong>end:</strong></span> end input stream iterator
4251 <li class="listitem">
4252 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4254 <li class="listitem">
4255 <span class="bold"><strong>err:</strong></span> the ios_base state
4257 <li class="listitem">
4258 <span class="bold"><strong>rt:</strong></span> a reference to the duration
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>.
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.
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 <boost/chrono/io/duration_put.hpp>">Header <code class="computeroutput"><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">io</span><span class="special">/</span><span class="identifier">duration_put</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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>
4285 <span class="keyword">template</span> <span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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>
4288 <span class="special">}</span>
4289 <span class="special">}</span>
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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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>
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>
4306 <span class="keyword">template</span> <span class="special"><</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">></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&,char_type,duration<Rep,Period> const&, 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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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>
4310 <span class="keyword">template</span> <span class="special"><</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">></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&,char_type fill, duration<Rep, Period> const&)"><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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4313 <span class="keyword">template</span> <span class="special"><</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">></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&, char_type, duration<Rep,Period> const&)"><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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4316 <span class="keyword">template</span> <span class="special"><</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">></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&,char_type,duration<Rep, Period> const&)"><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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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>
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>
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>
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.
4336 <span class="bold"><strong>Parameters:</strong></span>
4338 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4339 <span class="bold"><strong>refs:</strong></span> references
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.
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>
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.
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&,char_type,duration<Rep,Period> const&, 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">&,</span><span class="identifier">char_type</span><span class="special">,</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span><span class="identifier">Period</span><span class="special">></span>
4367 <span class="keyword">const</span><span class="special">&,</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"><</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">></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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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>
4375 <span class="bold"><strong>Parameters:</strong></span>
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
4381 <li class="listitem">
4382 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4384 <li class="listitem">
4385 <span class="bold"><strong>d:</strong></span> the duration
4387 <li class="listitem">
4388 <span class="bold"><strong>pattern:</strong></span> begin of the formatting
4391 <li class="listitem">
4392 <span class="bold"><strong>pat_end:</strong></span> end of the formatting
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"><</span><span class="identifier">charT</span><span class="special">></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>.
4419 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
4420 after the last character produced.
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&,char_type fill, duration<Rep, Period> const&)">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">&,</span><span class="identifier">char_type</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&)</span></code></a>
4427 </h6></div></div></div>
4428 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4432 <span class="bold"><strong>Parameters:</strong></span>
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
4438 <li class="listitem">
4439 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4441 <li class="listitem">
4442 <span class="bold"><strong>d:</strong></span> the duration
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
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>
4453 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
4454 after the last character produced.
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&, char_type, duration<Rep,Period> const&)">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">&,</span>
4462 <span class="identifier">char_type</span><span class="special">,</span>
4463 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span><span class="identifier">Period</span><span class="special">></span>
4464 <span class="keyword">const</span><span class="special">&)</span></code></a>
4465 </h6></div></div></div>
4466 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4470 <span class="bold"><strong>Parameters:</strong></span>
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
4476 <li class="listitem">
4477 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4479 <li class="listitem">
4480 <span class="bold"><strong>d:</strong></span> the duration
4484 <span class="bold"><strong>Effects:</strong></span> As if std::use_facet<std::num_put<CharT,
4485 iter_type> >(ios.getloc()).put(s, ios, ' ', static_cast<long
4486 int> (d.count())).
4489 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
4490 after the last character produced.
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&,char_type,duration<Rep, Period> const&)">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">&,</span><span class="identifier">char_type</span><span class="special">,</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span>
4497 <span class="keyword">const</span><span class="special">&)</span></code></a>
4498 </h6></div></div></div>
4499 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
4503 <span class="bold"><strong>Parameters:</strong></span>
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
4509 <li class="listitem">
4510 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
4512 <li class="listitem">
4513 <span class="bold"><strong>fill:</strong></span> the fill character
4515 <li class="listitem">
4516 <span class="bold"><strong>d:</strong></span> the duration
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"><</span><span class="identifier">CharT</span><span class="special">></span></code> facet associated to <code class="computeroutput"><span class="identifier">ios</span></code>. If the associated unit is named,
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>
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>.
4532 <span class="bold"><strong>Returns:</strong></span> s, iterator pointing immediately
4533 after the last character produced.
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 <boost/chrono/io/duration_units.hpp>">Header <code class="computeroutput"><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">io</span><span class="special">/</span><span class="identifier">duration_units</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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>
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"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">></span>
4554 <span class="keyword">class</span> <span class="identifier">duration_units</span><span class="special">;</span>
4556 <span class="special">}</span>
4557 <span class="special">}</span>
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"><</span><span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">></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">&)</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>
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>
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>
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"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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>
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&)"><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">&</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"><</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">></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<Rep,Period> const&)"><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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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"><</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">></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<Rep,Period> const&)"><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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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"><</span><span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">></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>
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>
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,
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>
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.
4635 <span class="bold"><strong>Parameters:</strong></span>
4637 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4638 <span class="bold"><strong>refs:</strong></span> references
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.
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>
4658 <span class="bold"><strong>Effects:</strong></span> Destroys the facet.
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>
4669 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
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>
4681 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
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>
4693 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
4694 units, symbol or prefix with its different plural forms.
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>
4705 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
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>
4717 <span class="bold"><strong>Parameters:</strong></span>
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]
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
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&)">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">&)</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">&</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>
4737 <span class="bold"><strong>Parameters:</strong></span>
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.
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.
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>
4757 <span class="bold"><strong>Returns:</strong></span> the pattern to be used by
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<Rep,Period> const&)">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"><</span><span class="identifier">Rep</span><span class="special">,</span><span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&)</span></code></a>
4765 </h6></div></div></div>
4766 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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.
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<Rep,Period> const&)">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"><</span><span class="identifier">Rep</span><span class="special">,</span><span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&)</span></code></a>
4777 </h6></div></div></div>
4778 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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
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"><</span><span class="keyword">typename</span> <span class="identifier">Period</span><span class="special">></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>
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.
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>
4808 <span class="bold"><strong>Returns:</strong></span> the [N/D] suffix unit associated
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>
4820 <span class="bold"><strong>Returns:</strong></span> the unit associated to this
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>
4832 <span class="bold"><strong>Returns:</strong></span> true if the unit associated
4833 to the given Period is named, false otherwise.
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"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span> <span class="special">=</span> <span class="keyword">char</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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>
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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">string_type</span><span class="special">;</span>
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>
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">&</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>
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>
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"><</span><span class="number">1</span><span class="special">></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"><</span><span class="number">60</span><span class="special">></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"><</span><span class="number">3600</span><span class="special">></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>
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>
4909 This class is used to define the strings for the default English. This
4910 facet names the units associated to the following periods:
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>,
4916 <li class="listitem">
4917 <code class="computeroutput"><span class="identifier">femto</span></code>,
4919 <li class="listitem">
4920 <code class="computeroutput"><span class="identifier">pico</span></code>,
4922 <li class="listitem">
4923 <code class="computeroutput"><span class="identifier">nano</span></code>,
4925 <li class="listitem">
4926 <code class="computeroutput"><span class="identifier">micro</span></code>,
4928 <li class="listitem">
4929 <code class="computeroutput"><span class="identifier">milli</span></code>,
4931 <li class="listitem">
4932 <code class="computeroutput"><span class="identifier">centi</span></code>,
4934 <li class="listitem">
4935 <code class="computeroutput"><span class="identifier">deci</span></code>,
4937 <li class="listitem">
4940 <li class="listitem">
4941 <code class="computeroutput"><span class="identifier">deca</span></code>,
4943 <li class="listitem">
4944 <code class="computeroutput"><span class="identifier">hecto</span></code>,
4946 <li class="listitem">
4947 <code class="computeroutput"><span class="identifier">kilo</span></code>,
4949 <li class="listitem">
4950 <code class="computeroutput"><span class="identifier">mega</span></code>,
4952 <li class="listitem">
4953 <code class="computeroutput"><span class="identifier">giga</span></code>,
4955 <li class="listitem">
4956 <code class="computeroutput"><span class="identifier">tera</span></code>,
4958 <li class="listitem">
4959 <code class="computeroutput"><span class="identifier">peta</span></code>,
4961 <li class="listitem">
4962 <code class="computeroutput"><span class="identifier">exa</span></code>,
4964 <li class="listitem">
4967 <li class="listitem">
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>
4979 Construct a duration_units_default facet.
4982 <span class="bold"><strong>Parameters:</strong></span>
4984 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
4985 <span class="bold"><strong>refs:</strong></span> references
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.
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>
5006 <span class="bold"><strong>Effects:</strong></span> Destroys the facet.
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>
5017 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
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>
5029 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
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>
5041 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid
5042 units, symbol or prefix with its different plural forms.
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>
5053 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid
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>
5065 <span class="bold"><strong>Parameters:</strong></span>
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]
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
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&)">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">&)</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">&</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5085 <span class="bold"><strong>Parameters:</strong></span>
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.
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.
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>
5105 <span class="bold"><strong>Returns:</strong></span> the pattern to be used by
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>
5117 <span class="bold"><strong>Returns:</strong></span> the [N/D] suffix unit associated
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>
5129 <span class="bold"><strong>Returns:</strong></span> the unit associated to this
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>
5141 <span class="bold"><strong>Returns:</strong></span> true if the unit associated
5142 to the given Period is named, false otherwise.
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>
5153 <span class="bold"><strong>Returns:</strong></span> the number of associated
5154 plural forms this facet manages.
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>
5165 Gets the associated plural form.
5168 <span class="bold"><strong>Parameters:</strong></span>
5171 <span class="bold"><strong>value:</strong></span> the duration representation
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
5178 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
5179 <li class="listitem">
5180 0 singular (-1 or 1)
5182 <li class="listitem">
5183 1 plural for all others
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<1>,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"><</span><span class="number">1</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>
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"><</span><span class="number">1</span><span class="special">></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>
5195 <span class="bold"><strong>Parameters:</strong></span>
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.
5201 <li class="listitem">
5202 <span class="bold"><strong>period:</strong></span> the period associated
5203 to the duration hours.
5205 <li class="listitem">
5206 <span class="bold"><strong>pf:</strong></span> the requested plural form.
5210 <span class="bold"><strong>Returns:</strong></span> if style is symbol returns
5211 "s", otherwise if pf is 0 return "second", if pf
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<60>,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"><</span><span class="number">60</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>
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"><</span><span class="number">60</span><span class="special">></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>
5224 <span class="bold"><strong>Parameters:</strong></span>
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.
5230 <li class="listitem">
5231 <span class="bold"><strong>period:</strong></span> the period associated
5232 to the duration hours.
5234 <li class="listitem">
5235 <span class="bold"><strong>pf:</strong></span> the requested plural form.
5239 <span class="bold"><strong>Returns:</strong></span> if style is symbol returns
5240 "min", otherwise if pf is 0 return "minute", if
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<3600>,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"><</span><span class="number">3600</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>
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"><</span><span class="number">3600</span><span class="special">></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>
5252 <span class="bold"><strong>Parameters:</strong></span>
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.
5258 <li class="listitem">
5259 <span class="bold"><strong>period:</strong></span> the period associated
5260 to the duration hours.
5262 <li class="listitem">
5263 <span class="bold"><strong>pf:</strong></span> the requested plural form.
5267 <span class="bold"><strong>Returns:</strong></span> if style is symbol returns
5268 "h", otherwise if pf is 0 return "hour", if pf
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>
5295 <span class="bold"><strong>Parameters:</strong></span>
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.
5301 <li class="listitem">
5302 <span class="bold"><strong>u:</strong></span> the period tag atto.
5304 <li class="listitem">
5305 <span class="bold"><strong>pf:</strong></span> the requested plural form.
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.
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>
5337 <span class="bold"><strong>Parameters:</strong></span>
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.
5343 <li class="listitem">
5344 <span class="bold"><strong>u:</strong></span> the period tag atto.
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
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 <boost/chrono/io/duration_io.hpp>">Header <code class="computeroutput"><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">io</span><span class="special">/</span><span class="identifier">duration_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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>
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>
5368 <span class="comment">// manipulators</span>
5370 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.symbol_format" title="Non Member Function symbol_format(ios_base&)"><code class="computeroutput"><span class="identifier">symbol_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&</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">&</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.name_format" title="Non Member Function name_format(ios_base&)"><code class="computeroutput"><span class="identifier">name_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&</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"><</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>
5374 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5375 <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out" title="Member Function operator <<(basic_ostream<>&, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special"><<</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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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>
5377 <span class="keyword">template</span><span class="special"><</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>
5378 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5379 <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in" title="Member Function operator >>(basic_istream<>&, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">>></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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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>
5382 <span class="comment">// duration I/O</span>
5384 <span class="keyword">template</span> <span class="special"><</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">></span>
5385 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5386 <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_out" title="Member Function operator <<(basic_ostream<>&, const duration<>& d)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special"><<</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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
5388 <span class="keyword">template</span> <span class="special"><</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">></span>
5389 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5390 <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_in" title="Member Function operator <<(basic_istream<>&, const duration<>& d)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">>></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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">)</span>
5392 <span class="special">}</span>
5393 <span class="special">}</span>
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
5399 </h5></div></div></div>
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.
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>
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>
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>
5423 <span class="keyword">template</span><span class="special"><</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>
5424 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5425 <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out" title="Member Function operator <<(basic_ostream<>&, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special"><<</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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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>
5427 <span class="keyword">template</span><span class="special"><</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>
5428 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5429 <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in" title="Member Function operator >>(basic_istream<>&, duration_fmt)"><code class="computeroutput"><span class="keyword">operator</span> <span class="special">>></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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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>
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>
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>.
5443 <span class="bold"><strong>Post Conditions:</strong></span> <code class="computeroutput"><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">duration_style</span><span class="special">>(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">f</span></code>.
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>
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>.
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 <<(basic_ostream<>&, duration_fmt)">Member
5461 Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special"><<(</span><span class="identifier">basic_ostream</span><span class="special"><>&,</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"><</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>
5465 <span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5466 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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>
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 &,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"><</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">d</span><span class="special">))))</span></code>.
5472 <span class="bold"><strong>Returns:</strong></span>: <code class="computeroutput"><span class="identifier">s</span></code>.
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 >>(basic_istream<>&, duration_fmt)">Member
5478 Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special">>>(</span><span class="identifier">basic_istream</span><span class="special"><>&,</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"><</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>
5482 <span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5483 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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>
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 &,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"><</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">d</span><span class="special">))))</span></code>.
5489 <span class="bold"><strong>Returns:</strong></span>: <code class="computeroutput"><span class="identifier">s</span></code>.
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&)">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">&)</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">&</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.symbol_format" title="Non Member Function symbol_format(ios_base&)"><code class="computeroutput"><span class="identifier">symbol_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&</span> <span class="identifier">ios</span><span class="special">);</span>
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 &,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>.
5504 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">ios</span></code>
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&)">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">&)</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">&</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.name_format" title="Non Member Function name_format(ios_base&)"><code class="computeroutput"><span class="identifier">name_format</span></code></a><span class="special">(</span><span class="identifier">ios_base</span><span class="special">&</span> <span class="identifier">ios</span><span class="special">);</span>
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 &,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>.
5518 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">ios</span></code>
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 <<(basic_ostream<>&, const duration<>& d)">Member
5530 Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special"><<(</span><span class="identifier">basic_ostream</span><span class="special"><>&,</span>
5531 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><>&</span> <span class="identifier">d</span><span class="special">)</span></code></a>
5532 </h6></div></div></div>
5534 Any <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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<>"><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<>"><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.
5539 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
5540 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5541 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
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&,char_type,duration<Rep,Period> const&, 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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span></code>
5554 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>.
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 <<(basic_istream<>&, const duration<>& d)">Member
5560 Function <code class="computeroutput"><span class="keyword">operator</span> <span class="special"><<(</span><span class="identifier">basic_istream</span><span class="special"><>&,</span>
5561 <span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><>&</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"><</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">></span>
5564 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
5565 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">)</span>
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&,std::ios_base::iostate&,duration<Rep,Period>&,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"><</span><span class="identifier">CharT</span><span class="special">,</span>
5573 <span class="identifier">Traits</span><span class="special">>(),</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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span></code>
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>.
5588 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code>
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 <boost/chrono/io/time_point_get.hpp>">Header <code class="computeroutput"><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">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">></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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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>
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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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>
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>
5620 <span class="keyword">template</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
5622 <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">&</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>
5624 <span class="keyword">template</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
5626 <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">&</span><span class="identifier">tp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5628 <span class="keyword">template</span> <span class="special"><</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
5630 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5632 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">></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">&</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">&</span> <span class="identifier">err</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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>
5637 <span class="identifier">__time_point_get_d</span><span class="special">();</span>
5638 <span class="special">};</span>
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>.
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.
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.
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>.
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>
5665 Constructs a __time_point_get facet.
5668 <span class="bold"><strong>Parameters:</strong></span>
5670 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
5671 <span class="bold"><strong>refs:</strong></span> references
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.
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>
5692 <span class="bold"><strong>Effects:</strong></span> Destroy the facet.
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&,std::ios_base::iostate&,time_point<Clock, Duration>&,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">&,</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">&,</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&,</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"><</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
5702 <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">&</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>
5705 <span class="bold"><strong>Parameters:</strong></span>
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
5711 <li class="listitem">
5712 <span class="bold"><strong>end:</strong></span> end input stream iterator
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>
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>
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
5723 <li class="listitem">
5724 <span class="bold"><strong>pattern:</strong></span> begin of the formatting
5727 <li class="listitem">
5728 <span class="bold"><strong>pat_end:</strong></span> end of the formatting
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.
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:
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>.
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>.
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>.
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.
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.
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>.
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
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&,std::ios_base::iostate&,time_point<Clock,Duration>&)">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">&,</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">&,</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>&)</span></code></a>
5813 </h6></div></div></div>
5814 <pre class="programlisting"><span class="keyword">template</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
5816 <span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">&</span><span class="identifier">tp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5819 <span class="bold"><strong>Parameters:</strong></span>
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
5825 <li class="listitem">
5826 <span class="bold"><strong>end:</strong></span> end input stream iterator
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>
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>
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
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>.
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>
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
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&,std::ios_base::iostate&,duration<Rep,Period>&)">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">&,</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">&,</span><span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span><span class="identifier">Period</span><span class="special">>&)</span></code></a>
5856 </h6></div></div></div>
5857 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></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">&</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">&</span> <span class="identifier">err</span><span class="special">,</span>
5859 <span class="identifier">duration</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
5862 <span class="bold"><strong>Effects:</strong></span> As if
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>
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>
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
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&,std::ios_base::iostate&)">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">&,</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">&)</span></code></a>
5883 </h6></div></div></div>
5884 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">></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">&</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">&</span> <span class="identifier">err</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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.
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>.
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.
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 <boost/chrono/io/time_point_put.hpp>">Header <code class="computeroutput"><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">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">></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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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>
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>
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<>"><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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> and format it into
5932 character string representation.
5935 tparam ChatT a character type tparam OutputIterator a model of <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
5937 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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>
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>
5948 <span class="keyword">template</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">></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">&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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"><</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">></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">&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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"><</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">></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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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"><</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">></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">&</span> <span class="identifier">os</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
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>
5961 <span class="special">};</span>
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>
5971 Construct a time_point_put facet.
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.
5984 <span class="bold"><strong>Parameters:</strong></span>
5986 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
5987 <span class="bold"><strong>refs:</strong></span> references
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"><</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">></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">&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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>
6000 <span class="bold"><strong>Parameters:</strong></span>
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
6006 <li class="listitem">
6007 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6009 <li class="listitem">
6010 <span class="bold"><strong>fill:</strong></span> the character used as filler
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
6015 <li class="listitem">
6016 <span class="bold"><strong>pattern:</strong></span> begin of the formatting
6019 <li class="listitem">
6020 <span class="bold"><strong>pat_end:</strong></span> end of the formatting
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"><</span><span class="identifier">charT</span><span class="special">></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>.
6044 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
6045 after the last character produced.
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"><</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">></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">&</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"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">tp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6057 <span class="bold"><strong>Parameters:</strong></span>
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
6063 <li class="listitem">
6064 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6066 <li class="listitem">
6067 <span class="bold"><strong>fill:</strong></span> the character used as filler
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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>
6072 <li class="listitem">
6073 <span class="bold"><strong>tern:</strong></span> begin of the formatting
6076 <li class="listitem">
6077 <span class="bold"><strong>pat_end:</strong></span> end of the formatting
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>.
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>
6089 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
6090 after the last character produced.
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"><</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">></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">&</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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6102 <span class="bold"><strong>Parameters:</strong></span>
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
6108 <li class="listitem">
6109 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6111 <li class="listitem">
6112 <span class="bold"><strong>fill:</strong></span> the character used as filler
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<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>
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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span></code>.
6124 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately
6125 after the last character produced.
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"><</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">></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">&</span> <span class="identifier">os</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
6137 <span class="bold"><strong>Parameters:</strong></span>
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
6143 <li class="listitem">
6144 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base
6148 <span class="bold"><strong>Effects:</strong></span> As if
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"><</span><span class="identifier">Clock</span><span class="special">>();</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>
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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span></code>.
6159 <span class="bold"><strong>Returns:</strong></span> s, iterator pointing immediately
6160 after the last character produced.
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 <boost/chrono/io/time_point_units.hpp>">Header <code class="computeroutput"><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">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">></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>
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"><</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">></span>
6180 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></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">&</span> <span class="identifier">f</span><span class="special">);</span>
6181 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">></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"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">></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>
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"><</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">></span>
6194 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></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">&</span> <span class="identifier">f</span><span class="special">);</span>
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>.
6200 The user can overload this function.
6203 <span class="bold"><strong>Returns:</strong></span> Forwards the call to the facet
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>
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>
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,
6219 <pre class="programlisting"> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">></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"><</span><span class="identifier">char_type</span><span class="special">></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>
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>
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"><</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">></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>
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>
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>
6248 <span class="special">};</span>
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>
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.
6261 <span class="bold"><strong>Parameters:</strong></span>
6263 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
6264 <span class="bold"><strong>refs:</strong></span> references
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.
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>
6286 <span class="bold"><strong>Returns:</strong></span> the pattern to be used by
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"><</span><span class="keyword">typename</span> <span class="identifier">Clock</span><span class="special">></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>
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"><</span><span class="identifier">CharT</span><span class="special">>(</span><span class="identifier">Clock</span><span class="special">(),</span> <span class="special">*</span><span class="keyword">this</span><span class="special">);</span> </code>
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>
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>
6323 <span class="bold"><strong>Parameters:</strong></span>
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>.
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>.
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>
6341 <span class="bold"><strong>Parameters:</strong></span>
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>.
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>.
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>
6361 <span class="bold"><strong>Parameters:</strong></span>
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>.
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>.
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>
6381 <span class="bold"><strong>Parameters:</strong></span>
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>.
6387 <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6388 to the process_user_cpu_clock.
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>
6401 <span class="bold"><strong>Parameters:</strong></span>
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>.
6407 <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6408 to the process_user_cpu_clock.
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>
6421 <span class="bold"><strong>Parameters:</strong></span>
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>.
6427 <span class="bold"><strong>Returns:</strong></span> The epoch string associated
6428 to the process_cpu_clock.
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>
6441 <span class="bold"><strong>Parameters:</strong></span>
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>.
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>.
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"><</span><span class="keyword">typename</span> <span class="identifier">CharT</span><span class="special">=</span><span class="keyword">char</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">char_type</span><span class="special">></span> <span class="identifier">string_type</span><span class="special">;</span> <span class="comment">// Type of character string used by member functions.</span>
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>
6468 <span class="comment">/**
6469 * __returns the default pattern "%d%e".
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>
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<system_clock,CharT>::since()`.
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<steady_clock,CharT>::since()`.
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<process_real_cpu_clock,CharT>::since()`.
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<process_user_cpu_clock,CharT>::since()`.
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<process_system_cpu_clock,CharT>::since()`.
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<process_cpu_clock,CharT>::since()`.
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>
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<thread_clock,CharT>::since()`.
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>
6515 <span class="special">};</span>
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 <boost/chrono/io/time_point_io.hpp>">Header <code class="computeroutput"><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">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">></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>
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>
6533 <span class="comment">// manipulators</span>
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"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
6538 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></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>
6541 <span class="comment">// i/o state savers</span>
6543 <span class="keyword">template</span><span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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<>"><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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></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>
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&)"><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">&</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&, 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">&</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>
6555 <span class="keyword">template</span><span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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<>"><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"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span>
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">&</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">&</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</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>
6566 <span class="comment">// system_clock I/O</span>
6568 <span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6569 <span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6570 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6573 <span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6574 <span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6575 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
6576 <span class="identifier">time_point</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6578 <span class="comment">// Other Clocks I/O</span>
6580 <span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6581 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6582 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</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"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6585 <span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6586 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6587 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
6588 <span class="identifier">time_point</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6590 <span class="special">}</span>
6591 <span class="special">}</span>
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
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><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip.time_fmt1" title="Non Member Function time_fmt(timezone)">Non
6601 Member Function <span class="identifier">time_fmt</span><span class="special">(</span><code class="computeroutput"><span class="identifier">timezone</span></code><span class="special">)</span>
6603 </h6></div></div></div>
6604 <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>
6607 <span class="bold"><strong>Returns:</strong></span>: An unspecified object that
6608 when streamed to a <code class="computeroutput"><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></span></code> or <code class="computeroutput"><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></span></code> <code class="computeroutput"><span class="identifier">s</span></code>
6609 will have the effects of:
6611 <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&,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>
6614 <div class="section">
6615 <div class="titlepage"><div><div><h6 class="title">
6616 <a name="chrono.reference.io.time_point_io_hpp.manip.time_fmt2"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip.time_fmt2" title="Non Member Function time_fmt(timezone, string)">Non
6617 Member Function <span class="identifier">time_fmt</span><span class="special">(</span><code class="computeroutput"><span class="identifier">timezone</span></code><span class="special">,</span>
6618 <span class="identifier">string</span><span class="special">)</span>
6620 </h6></div></div></div>
6621 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
6622 <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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
6623 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
6624 <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>
6627 <span class="bold"><strong>Returns:</strong></span>: An unspecified object that
6628 when streamed to a <code class="computeroutput"><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></span></code> or <code class="computeroutput"><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">></span></code> <code class="computeroutput"><span class="identifier">s</span></code>
6629 will have the effects of:
6631 <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&,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>
6632 <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&, std::basic_string<CharT> const&)"><code class="computeroutput"><span class="identifier">set_time_fmt</span></code></a><span class="special"><</span><span class="identifier">CharT</span><span class="special">>(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
6636 <div class="section">
6637 <div class="titlepage"><div><div><h5 class="title">
6638 <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
6639 Streams Operations</a>
6640 </h5></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"></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>
6644 </h6></div></div></div>
6645 <div class="section">
6646 <div class="titlepage"><div><div><h6 class="title">
6647 <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<<()">Non
6648 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code></a>
6649 </h6></div></div></div>
6650 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6651 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6652 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span>
6653 <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6656 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6657 output function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code>
6658 object, if the <code class="computeroutput"><span class="identifier">sentry</span></code>
6659 converts to <code class="computeroutput"><span class="keyword">true</span></code>, sets
6660 a local variable <code class="computeroutput"><span class="identifier">tz</span></code>
6661 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>.
6662 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 &)"><code class="computeroutput"><span class="identifier">get_time_fmt</span></code></a><span class="special">()</span></code>
6663 is recorded as a pair of <code class="computeroutput"><span class="keyword">const</span>
6664 <span class="identifier">CharT</span><span class="special">*</span></code>.
6665 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.
6668 Next <code class="computeroutput"><span class="identifier">tp</span></code> is converted
6669 to a <code class="computeroutput"><span class="identifier">time_t</span></code>, and
6670 this <code class="computeroutput"><span class="identifier">time_t</span></code> is converted
6671 to a <code class="computeroutput"><span class="identifier">tm</span></code>. The conversion
6672 to <code class="computeroutput"><span class="identifier">tm</span></code> use <code class="computeroutput"><span class="identifier">gmtime</span></code> (when available) if the
6673 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
6677 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
6678 to the stream using the <code class="computeroutput"><span class="identifier">tm</span></code>
6679 and the formatting string stored in the <code class="computeroutput"><span class="identifier">time_punct</span></code>
6680 facet, unless that facet was missing, or unless it provided an empty
6684 If the formatting string is empty, then output as follows:
6687 First output <code class="computeroutput"><span class="identifier">tm</span></code> using
6688 <code class="computeroutput"><span class="string">"%F %H:%M:"</span></code>
6691 Next output a <code class="computeroutput"><span class="keyword">double</span></code>
6692 representing the number of seconds stored in the <code class="computeroutput"><span class="identifier">tm</span></code>
6693 plus the fractional seconds represented in <code class="computeroutput"><span class="identifier">tp</span></code>.
6694 The format shall be <code class="computeroutput"><span class="identifier">ios</span><span class="special">::</span><span class="identifier">fixed</span></code>
6695 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
6696 should be sufficient to output six digits following the decimal point).
6697 If the number of seconds is less than <code class="computeroutput"><span class="number">10</span></code>,
6698 the output shall be prefixed by <code class="computeroutput"><span class="char">'0'</span></code>.
6701 Finally if <code class="computeroutput"><span class="identifier">tz</span></code> is
6702 <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".
6703 Else append the sequence " +0000" to the stream.
6706 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>
6707 <span class="special">|</span> <span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">)</span></code>.
6710 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>
6713 <div class="section">
6714 <div class="titlepage"><div><div><h6 class="title">
6715 <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>>()">Non
6716 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">>>()</span></code></a>
6717 </h6></div></div></div>
6718 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6719 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6720 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
6721 <span class="identifier">time_point</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6724 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6725 input function. After constructing a sentry object, if the sentry
6726 converts to true, obtains a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_get</span></code>
6727 facet from <code class="computeroutput"><span class="identifier">is</span></code>, and
6728 obtains a formatting string in the same manner as described for insertion
6729 operator. Extract a <code class="computeroutput"><span class="identifier">tm</span></code>
6730 using the supplied formatting string, or if empty, defaulted as described
6731 for the insertion operator. Note that extraction does not use the
6732 <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
6733 the <code class="computeroutput"><span class="identifier">is</span></code> for the defaulted
6734 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
6735 stored in the stream.
6738 Any <code class="computeroutput"><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">system_clock</span><span class="special">,</span>
6739 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span></code>
6740 inserted, and then extracted should result in an equal <code class="computeroutput"><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">system_clock</span><span class="special">,</span>
6741 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span></code>,
6742 excepting any precision that did not get inserted.
6745 <span class="bold"><strong>Example:</strong></span>
6747 <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>
6748 <span class="special">{</span>
6749 <span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span> <span class="identifier">s</span><span class="special">;</span>
6750 <span class="identifier">s</span> <span class="special"><<</span> <span class="identifier">tp</span><span class="special">;</span>
6751 <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>
6752 <span class="identifier">s</span> <span class="special">>></span> <span class="identifier">tp2</span><span class="special">;</span>
6753 <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>
6754 <span class="special">}</span>
6757 <span class="bold"><strong>Returns:</strong></span> is
6761 <div class="section">
6762 <div class="titlepage"><div><div><h6 class="title">
6763 <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
6765 </h6></div></div></div>
6766 <div class="section">
6767 <div class="titlepage"><div><div><h6 class="title">
6768 <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<<()">Non
6769 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code></a>
6770 </h6></div></div></div>
6771 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6772 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6773 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span>
6774 <span class="keyword">const</span> <span class="identifier">time_point</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6777 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6778 output function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code>
6779 object, if the <code class="computeroutput"><span class="identifier">sentry</span></code>
6780 converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls
6781 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>
6782 where <code class="computeroutput"><span class="identifier">facet</span></code> is the
6783 <code class="computeroutput"><span class="identifier">time_point_put</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code>
6784 facet associated to <code class="computeroutput"><span class="identifier">os</span></code>
6785 or a new created instance of the default <code class="computeroutput"><span class="identifier">time_point_put</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code> facet.
6788 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>.
6791 <span class="bold"><strong>Example:</strong></span>
6793 <pre class="programlisting"><span class="number">22644271279698</span> <span class="identifier">nanoseconds</span> <span class="identifier">since</span> <span class="identifier">boot</span>
6796 <div class="section">
6797 <div class="titlepage"><div><div><h6 class="title">
6798 <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>>()">Non
6799 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">>>()</span></code></a>
6800 </h6></div></div></div>
6801 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span>
6802 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6803 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
6804 <span class="identifier">time_point</span><span class="special"><</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<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">>&</span> <span class="identifier">tp</span><span class="special">);</span>
6807 Extracts <code class="computeroutput"><span class="identifier">tp</span></code> from
6808 the stream <code class="computeroutput"><span class="identifier">is</span></code>.
6811 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted
6812 input function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code>
6813 object, if the <code class="computeroutput"><span class="identifier">sentry</span></code>
6814 converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls
6815 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"><</span><span class="identifier">CharT</span><span class="special">,</span>
6816 <span class="identifier">Traits</span><span class="special">>(),</span>
6817 <span class="identifier">is</span><span class="special">,</span>
6818 <span class="identifier">err</span><span class="special">,</span>
6819 <span class="identifier">tp</span><span class="special">)</span></code>
6820 where <code class="computeroutput"><span class="identifier">facet</span></code> is the
6821 <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code>
6822 facet associated to <code class="computeroutput"><span class="identifier">is</span></code>
6823 or a new created instance of the default <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code> facet.
6826 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>
6827 <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>.
6830 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code>.
6837 <div class="section">
6838 <div class="titlepage"><div><div><h3 class="title">
6839 <a name="chrono.reference.round"></a><a class="link" href="reference.html#chrono.reference.round" title="Chrono Rounding Utilities">Chrono Rounding Utilities</a>
6840 </h3></div></div></div>
6841 <div class="toc"><dl class="toc">
6842 <dt><span class="section"><a href="reference.html#chrono.reference.round.floor_hpp">Header <code class="computeroutput"><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">floor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
6843 <dt><span class="section"><a href="reference.html#chrono.reference.round.round_hpp">Header <code class="computeroutput"><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">round</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
6844 <dt><span class="section"><a href="reference.html#chrono.reference.round.ceil_hpp">Header <code class="computeroutput"><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">ceil</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
6846 <div class="section">
6847 <div class="titlepage"><div><div><h4 class="title">
6848 <a name="chrono.reference.round.floor_hpp"></a><a class="link" href="reference.html#chrono.reference.round.floor_hpp" title="Header <boost/chrono/floor.hpp>">Header <code class="computeroutput"><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">floor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
6849 </h4></div></div></div>
6850 <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>
6851 <span class="keyword">template</span> <span class="special"><</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">></span>
6852 <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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
6853 <span class="special">}</span> <span class="special">}</span>
6856 This function round down the given parameter.
6859 <div class="section">
6860 <div class="titlepage"><div><div><h4 class="title">
6861 <a name="chrono.reference.round.round_hpp"></a><a class="link" href="reference.html#chrono.reference.round.round_hpp" title="Header <boost/chrono/round.hpp>">Header <code class="computeroutput"><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">round</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
6862 </h4></div></div></div>
6863 <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>
6864 <span class="keyword">template</span> <span class="special"><</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">></span>
6865 <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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
6866 <span class="special">}</span> <span class="special">}</span>
6869 This function round to nearest, to even on tie the given parameter.
6872 <div class="section">
6873 <div class="titlepage"><div><div><h4 class="title">
6874 <a name="chrono.reference.round.ceil_hpp"></a><a class="link" href="reference.html#chrono.reference.round.ceil_hpp" title="Header <boost/chrono/ceil.hpp>">Header <code class="computeroutput"><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">ceil</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
6875 </h4></div></div></div>
6876 <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>
6877 <span class="keyword">template</span> <span class="special"><</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">></span>
6878 <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"><</span><span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">);</span>
6879 <span class="special">}</span> <span class="special">}</span>
6882 This function round up the given parameter.
6886 <div class="section">
6887 <div class="titlepage"><div><div><h3 class="title">
6888 <a name="chrono.reference.other_clocks"></a><a class="link" href="reference.html#chrono.reference.other_clocks" title="Other Clocks">Other Clocks</a>
6889 </h3></div></div></div>
6890 <div class="toc"><dl class="toc">
6891 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp">Header
6892 <code class="computeroutput"><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">process_cpu_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
6893 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp">Header
6894 <code class="computeroutput"><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">thread_clock</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
6896 <div class="section">
6897 <div class="titlepage"><div><div><h4 class="title">
6898 <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 <boost/chrono/process_cpu_clocks.hpp>">Header
6899 <code class="computeroutput"><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">process_cpu_clocks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
6900 </h4></div></div></div>
6901 <div class="toc"><dl class="toc">
6902 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.BOOST_CHRONO_HAS_PROCESS_CLOCKS">Macro
6903 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span>
6904 </code></a></span></dt>
6905 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock">Class
6906 <code class="computeroutput"><span class="identifier">process_real_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_user_cpu_clock">Class
6908 <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a></span></dt>
6909 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock">Class
6910 <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a></span></dt>
6911 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock">Class
6912 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a></span></dt>
6913 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times">Template
6914 Class <code class="computeroutput"><span class="identifier">process_times</span></code></a></span></dt>
6915 <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>
6916 <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"><></span></code></a></span></dt>
6917 <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"><</span><span class="identifier">process_real_cpu_clock</span><span class="special">></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_user_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_user_cpu_clock</span><span class="special">></span></code>
6920 Specialization</a></span></dt>
6921 <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"><</span><span class="identifier">process_system_cpu_clock</span><span class="special">></span></code>
6922 Specialization</a></span></dt>
6923 <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"><</span><span class="identifier">process_cpu_clock</span><span class="special">></span></code>
6924 Specialization</a></span></dt>
6925 <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"><></span></code></a></span></dt>
6928 Knowing how long a program takes to execute is useful in both test and
6929 production environments. It is also helpful if such timing information
6930 is broken down into real (wall clock) time, CPU time spent by the user,
6931 and CPU time spent by the operating system servicing user requests.
6934 Process clocks don't include the time spent by the child process.
6936 <pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span>
6938 <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>
6940 <span class="keyword">class</span> <span class="identifier">process_real_cpu_clock</span><span class="special">;</span>
6941 <span class="keyword">class</span> <span class="identifier">process_user_cpu_clock</span><span class="special">;</span>
6942 <span class="keyword">class</span> <span class="identifier">process_system_cpu_clock</span><span class="special">;</span>
6943 <span class="keyword">class</span> <span class="identifier">process_cpu_clock</span><span class="special">;</span>
6945 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">></span>
6946 <span class="keyword">struct</span> <span class="identifier">process_times</span><span class="special">;</span>
6947 <span class="keyword">template</span> <span class="special"><</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>
6948 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6949 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span>
6950 <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
6952 <span class="keyword">template</span> <span class="special"><</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>
6953 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
6954 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
6955 <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
6957 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></span>
6958 <span class="keyword">struct</span> <span class="identifier">duration_values</span><span class="special"><</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="special">>;</span>
6960 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
6961 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_real_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>;</span>
6962 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_user_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>;</span>
6963 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_system_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>;</span>
6964 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>;</span>
6966 <span class="special">}</span> <span class="special">}</span>
6967 <span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span>
6968 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></span>
6969 <span class="keyword">class</span> <span class="identifier">numeric_limits</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">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="special">>;</span>
6970 <span class="special">}</span>
6972 <div class="section">
6973 <div class="titlepage"><div><div><h5 class="title">
6974 <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
6975 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span>
6977 </h5></div></div></div>
6979 This macro is defined if the platform supports process clocks.
6982 <div class="section">
6983 <div class="titlepage"><div><div><h5 class="title">
6984 <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
6985 <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>
6986 </h5></div></div></div>
6988 <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
6989 the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
6993 <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
6994 provides access to the real process wall-clock steady clock, i.e. the
6995 real CPU-time clock of the calling process. The process relative current
6996 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>.
6998 <pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_real_cpu_clock</span> <span class="special">{</span>
6999 <span class="keyword">public</span><span class="special">:</span>
7000 <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>
7001 <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>
7002 <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>
7003 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</span><span class="identifier">process_real_cpu_clock</span><span class="special">></span> <span class="identifier">time_point</span><span class="special">;</span>
7004 <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>
7006 <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>
7007 <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">&</span> <span class="identifier">ec</span> <span class="special">);</span>
7008 <span class="special">};</span>
7011 <div class="section">
7012 <div class="titlepage"><div><div><h5 class="title">
7013 <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
7014 <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a>
7015 </h5></div></div></div>
7017 <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
7018 the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
7022 <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
7023 provides access to the user CPU-time steady clock of the calling process.
7024 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>.
7026 <pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_user_cpu_clock</span> <span class="special">{</span>
7027 <span class="keyword">public</span><span class="special">:</span>
7028 <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>
7029 <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>
7030 <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>
7031 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</span><span class="identifier">process_user_cpu_clock</span><span class="special">></span> <span class="identifier">time_point</span><span class="special">;</span>
7032 <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>
7034 <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>
7035 <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">&</span> <span class="identifier">ec</span> <span class="special">);</span>
7036 <span class="special">};</span>
7039 <div class="section">
7040 <div class="titlepage"><div><div><h5 class="title">
7041 <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
7042 <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>
7043 </h5></div></div></div>
7045 <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
7046 the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>
7050 <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
7051 provides access to the system CPU-time steady clock of the calling process.
7052 The process relative system current time can be obtained by calling
7053 <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>.
7055 <pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_system_cpu_clock</span> <span class="special">{</span>
7056 <span class="keyword">public</span><span class="special">:</span>
7057 <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>
7058 <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>
7059 <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>
7060 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</span><span class="identifier">process_system_cpu_clock</span><span class="special">></span> <span class="identifier">time_point</span><span class="special">;</span>
7061 <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>
7063 <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>
7064 <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">&</span> <span class="identifier">ec</span> <span class="special">);</span>
7065 <span class="special">};</span>
7068 <div class="section">
7069 <div class="titlepage"><div><div><h5 class="title">
7070 <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
7071 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a>
7072 </h5></div></div></div>
7074 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code> can
7075 be considered as a <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</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">></span></code>.
7078 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code> provides
7079 a thin wrapper around the operating system's process time API. For POSIX-like
7080 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>
7084 The process relative real, user and system current time can be obtained
7085 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>.
7087 <pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_cpu_clock</span>
7088 <span class="special">{</span>
7089 <span class="keyword">public</span><span class="special">:</span>
7090 <span class="keyword">typedef</span> <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">nanoseconds</span><span class="special">::</span><span class="identifier">rep</span><span class="special">></span> <span class="identifier">times</span> <span class="special">;</span>
7092 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special"><</span><span class="identifier">times</span><span class="special">,</span> <span class="identifier">nano</span><span class="special">></span> <span class="identifier">duration</span><span class="special">;</span>
7093 <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>
7094 <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>
7095 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</span><span class="identifier">process_cpu_clock</span><span class="special">></span> <span class="identifier">time_point</span><span class="special">;</span>
7096 <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>
7098 <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>
7099 <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">&</span> <span class="identifier">ec</span> <span class="special">);</span>
7100 <span class="special">};</span>
7103 <div class="section">
7104 <div class="titlepage"><div><div><h5 class="title">
7105 <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
7106 Class <code class="computeroutput"><span class="identifier">process_times</span></code></a>
7107 </h5></div></div></div>
7109 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>
7110 class. As such it needs to implements the arithmetic operators.
7112 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">></span>
7113 <span class="keyword">struct</span> <span class="identifier">process_times</span> <span class="special">:</span> <span class="identifier">arithmetic</span><span class="special"><</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>,</span>
7114 <span class="identifier">multiplicative</span><span class="special"><</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>,</span> <span class="identifier">Rep</span><span class="special">,</span>
7115 <span class="identifier">less_than_comparable</span><span class="special"><</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="special">></span> <span class="special">></span> <span class="special">></span>
7116 <span class="special">{</span>
7117 <span class="identifier">Rep</span> <span class="identifier">real</span><span class="special">;</span> <span class="comment">// real (i.e wall clock) time</span>
7118 <span class="identifier">Rep</span> <span class="identifier">user</span><span class="special">;</span> <span class="comment">// user cpu time</span>
7119 <span class="identifier">Rep</span> <span class="identifier">system</span><span class="special">;</span> <span class="comment">// system cpu time</span>
7121 <span class="identifier">times</span><span class="special">();</span>
7122 <span class="identifier">times</span><span class="special">(</span>
7123 <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>
7124 <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>
7125 <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>
7127 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">></span>
7128 <span class="keyword">explicit</span> <span class="identifier">process_times</span><span class="special">(</span>
7129 <span class="identifier">Rep2</span> <span class="identifier">r</span><span class="special">);</span>
7130 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">></span>
7131 <span class="keyword">explicit</span> <span class="identifier">process_times</span><span class="special">(</span>
7132 <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7133 <span class="keyword">operator</span> <span class="identifier">rep</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
7135 <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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7136 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">></span>
7137 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7139 <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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7140 <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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7141 <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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7142 <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">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7143 <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">&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
7144 <span class="special">};</span>
7147 <div class="section">
7148 <div class="titlepage"><div><div><h5 class="title">
7149 <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>
7150 </h5></div></div></div>
7151 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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>
7152 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
7153 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span>
7154 <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7157 <span class="bold"><strong>Effects:</strong></span> Output each part separated
7158 by ';' and surrounded by '{', '}'.
7161 <span class="bold"><strong>Throws:</strong></span> None.
7163 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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>
7164 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span>
7165 <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">is</span><span class="special">,</span>
7166 <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
7169 <span class="bold"><strong>Effects:</strong></span> overrides the value of rhs
7170 if the input stream has the format "{r;u;s}". Otherwise, set
7171 the input stream state as failbit | eofbit.
7174 <span class="bold"><strong>Throws:</strong></span> None.
7177 <div class="section">
7178 <div class="titlepage"><div><div><h5 class="title">
7179 <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<>"><code class="computeroutput"><span class="identifier">duration_values</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special"><></span></code></a>
7180 </h5></div></div></div>
7181 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></span>
7182 <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><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="special">></span>
7183 <span class="special">{</span>
7184 <span class="keyword">static</span> <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="identifier">zero</span><span class="special">();</span>
7185 <span class="keyword">static</span> <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="identifier">max</span><span class="special">();</span>
7186 <span class="keyword">static</span> <span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="identifier">min</span><span class="special">();</span>
7187 <span class="special">};</span>
7190 The <code class="computeroutput"><span class="identifier">times</span></code> specific functions
7191 <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code>,
7192 <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code>
7193 and <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code>
7194 uses the relative functions on the representation of each component.
7197 <div class="section">
7198 <div class="titlepage"><div><div><h5 class="title">
7199 <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<process_real_cpu_clock> Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_real_cpu_clock</span><span class="special">></span></code>
7201 </h5></div></div></div>
7202 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
7203 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_real_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">></span>
7204 <span class="special">{</span>
7205 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span>
7206 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
7207 <span class="special">};</span>
7210 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
7211 returns "process_real_cpu_clock".
7214 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
7215 returns " since process start-up"
7218 <div class="section">
7219 <div class="titlepage"><div><div><h5 class="title">
7220 <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<process_user_cpu_clock> Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_user_cpu_clock</span><span class="special">></span></code>
7222 </h5></div></div></div>
7223 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
7224 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_user_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">></span>
7225 <span class="special">{</span>
7226 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span>
7227 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
7228 <span class="special">};</span>
7231 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
7232 returns "process_user_cpu_clock".
7235 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
7236 returns " since process start-up"
7239 <div class="section">
7240 <div class="titlepage"><div><div><h5 class="title">
7241 <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<process_system_cpu_clock> Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_system_cpu_clock</span><span class="special">></span></code>
7243 </h5></div></div></div>
7244 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
7245 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_system_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">></span>
7246 <span class="special">{</span>
7247 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span>
7248 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
7249 <span class="special">};</span>
7252 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
7253 returns "process_system_cpu_clock".
7256 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
7257 returns " since process start-up"
7260 <div class="section">
7261 <div class="titlepage"><div><div><h5 class="title">
7262 <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<process_cpu_clock> Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_cpu_clock</span><span class="special">></span></code>
7264 </h5></div></div></div>
7265 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
7266 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_cpu_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">></span>
7267 <span class="special">{</span>
7268 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span>
7269 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
7270 <span class="special">};</span>
7273 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
7274 returns "process_cpu_clock".
7277 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
7278 returns " since process start-up"
7281 <div class="section">
7282 <div class="titlepage"><div><div><h5 class="title">
7283 <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<>"><code class="computeroutput"><span class="identifier">numeric_limits</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special"><></span></code></a>
7284 </h5></div></div></div>
7285 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span>
7286 <span class="keyword">template</span> <span class="special"><></span>
7287 <span class="keyword">class</span> <span class="identifier">numeric_limits</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">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>></span> <span class="special">{</span>
7288 <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"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="identifier">Res</span><span class="special">;</span>
7290 <span class="keyword">public</span><span class="special">:</span>
7291 <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>
7292 <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">min</span><span class="special">();</span>
7293 <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">max</span><span class="special">();</span>
7294 <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">lowest</span><span class="special">();</span>
7295 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">;</span>
7296 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits10</span><span class="special">;</span>
7297 <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>
7298 <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>
7299 <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>
7300 <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>
7301 <span class="special">};</span>
7302 <span class="special">}</span>
7305 The <code class="computeroutput"><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span></code>
7306 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
7307 representation of each component.
7312 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
7313 <li class="listitem">
7314 <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code>
7315 returns the tuple of mins.
7317 <li class="listitem">
7318 <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code>
7319 returns the tuple of maxs.
7321 <li class="listitem">
7322 <code class="computeroutput"><span class="identifier">lowest</span><span class="special">()</span></code>
7323 returns the tuple of lowests.
7325 <li class="listitem">
7326 <code class="computeroutput"><span class="identifier">digits</span></code> is the sum
7329 <li class="listitem">
7330 <code class="computeroutput"><span class="identifier">digits10</span></code> is the sum
7336 <div class="section">
7337 <div class="titlepage"><div><div><h4 class="title">
7338 <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 <boost/chrono/thread_clock.hpp>">Header
7339 <code class="computeroutput"><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">thread_clock</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
7340 </h4></div></div></div>
7341 <div class="toc"><dl class="toc">
7342 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_HAS_THREAD_CLOCK">Macro
7343 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span></code></a></span></dt>
7344 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_THREAD_CLOCK_IS_STEADY">Macro
7345 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span></code></a></span></dt>
7346 <dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock">Class
7347 <code class="computeroutput"><span class="identifier">thread_clock</span></code></a></span></dt>
7348 <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"><</span><span class="identifier">thread_clock</span><span class="special">></span></code>
7349 Specialization</a></span></dt>
7352 Knowing the time a thread takes to execute is useful in both test and production
7355 <pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span>
7356 <span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span>
7357 <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>
7359 <span class="keyword">class</span> <span class="identifier">thread_clock</span><span class="special">;</span>
7360 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
7361 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">thread_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>;</span>
7363 <span class="special">}</span> <span class="special">}</span>
7365 <div class="section">
7366 <div class="titlepage"><div><div><h5 class="title">
7367 <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
7368 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span></code></a>
7369 </h5></div></div></div>
7371 This macro is defined if the platform supports thread clocks.
7374 <div class="section">
7375 <div class="titlepage"><div><div><h5 class="title">
7376 <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
7377 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span></code></a>
7378 </h5></div></div></div>
7380 This macro is defined if the platform has a thread clock. Its value is
7381 true if it is steady and false otherwise.
7384 <div class="section">
7385 <div class="titlepage"><div><div><h5 class="title">
7386 <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
7387 <code class="computeroutput"><span class="identifier">thread_clock</span></code></a>
7388 </h5></div></div></div>
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> 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>
7394 <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
7395 access to the real thread wall-clock, i.e. the real CPU-time clock of
7396 the calling thread. The thread relative current time can be obtained
7397 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>.
7399 <pre class="programlisting"><span class="keyword">class</span> <span class="identifier">thread_clock</span> <span class="special">{</span>
7400 <span class="keyword">public</span><span class="special">:</span>
7401 <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>
7402 <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>
7403 <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>
7404 <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<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special"><</span><span class="identifier">thread_clock</span><span class="special">></span> <span class="identifier">time_point</span><span class="special">;</span>
7405 <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>
7407 <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>
7408 <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">&</span> <span class="identifier">ec</span> <span class="special">);</span>
7409 <span class="special">};</span>
7412 <div class="section">
7413 <div class="titlepage"><div><div><h5 class="title">
7414 <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<thread_clock> Specialization"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">thread_clock</span><span class="special">></span></code>
7416 </h5></div></div></div>
7417 <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>
7418 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span>
7419 <span class="keyword">struct</span> <span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">thread_clock</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">></span>
7420 <span class="special">{</span>
7421 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span>
7422 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span>
7423 <span class="special">};</span>
7424 <span class="preprocessor">#endif</span>
7427 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code>
7428 returns "thread_clock".
7431 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code>
7432 returns " since thread start-up"
7438 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
7439 <td align="left"></td>
7440 <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>
7441 Distributed under the Boost Software License, Version 1.0. (See accompanying
7442 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>)
7447 <div class="spirit-nav">
7448 <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>