1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5<title>Reference</title> 6<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> 7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 8<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> 9<link rel="up" href="../chrono.html" title="Chapter 7. Boost.Chrono 2.0.8"> 10<link rel="prev" href="users_guide.html" title="User's Guide"> 11<link rel="next" href="appendices.html" title="Appendices"> 12</head> 13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 14<table cellpadding="2" width="100%"><tr> 15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td> 16<td align="center"><a href="../../../index.html">Home</a></td> 17<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td> 18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 20<td align="center"><a href="../../../more/index.htm">More</a></td> 21</tr></table> 22<hr> 23<div class="spirit-nav"> 24<a accesskey="p" href="users_guide.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../chrono.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 25</div> 26<div class="section"> 27<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 28<a name="chrono.reference"></a><a class="link" href="reference.html" title="Reference">Reference </a> 29</h2></div></div></div> 30<div class="toc"><dl class="toc"> 31<dt><span class="section"><a href="reference.html#chrono.reference.chrono_include_hpp">Header <code class="computeroutput"><span class="special"><</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> 37</dl></div> 38<p> 39 As <code class="computeroutput"><span class="keyword">constexpr</span></code> will not be supported 40 by some compilers, it is replaced in the code by <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code> 41 for <code class="computeroutput"><span class="keyword">constexpr</span></code> functions and <code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code> for struct/class static 42 fields. The same applies to <code class="computeroutput"><span class="identifier">noexecpt</span></code> 43 which is replaced by <code class="computeroutput"><span class="keyword">noexcept</span></code> 44 in the code. 45 </p> 46<p> 47 The documentation doesn't use these macros. 48 </p> 49<div class="section"> 50<div class="titlepage"><div><div><h3 class="title"> 51<a name="chrono.reference.chrono_include_hpp"></a><a class="link" href="reference.html#chrono.reference.chrono_include_hpp" title="Header <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> 53<p> 54 Include all the chrono header files. 55 </p> 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> 63</pre> 64</div> 65<div class="section"> 66<div class="titlepage"><div><div><h3 class="title"> 67<a name="chrono.reference.cpp0x"></a><a class="link" href="reference.html#chrono.reference.cpp0x" title="Included on the C++11 Recommendation">Included on the C++11 Recommendation</a> 68</h3></div></div></div> 69<div class="toc"><dl class="toc"> 70<dt><span class="section"><a href="reference.html#chrono.reference.cpp0x.chrono_hpp">Header <code class="computeroutput"><span class="special"><</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> 82</dl></div> 83<div class="section"> 84<div class="titlepage"><div><div><h4 class="title"> 85<a name="chrono.reference.cpp0x.chrono_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_hpp" title="Header <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> 87<p> 88 Include only the standard files. 89 </p> 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> 91</pre> 92</div> 93<div class="section"> 94<div class="titlepage"><div><div><h4 class="title"> 95<a name="chrono.reference.cpp0x.chrono_chrono_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp" title="Header <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> 102</dl></div> 103<p> 104 Include only the standard files. 105 </p> 106<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</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> 110</pre> 111<div class="section"> 112<div class="titlepage"><div><div><h5 class="title"> 113<a name="chrono.reference.cpp0x.chrono_chrono_hpp.limitations"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.limitations" title="Limitations and Extensions">Limitations 114 and Extensions</a> 115</h5></div></div></div> 116<p> 117 At present, there is no know limitation respect to the C++11 standard. 118 </p> 119<p> 120 The current implementation provides in addition: 121 </p> 122<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 123<li class="listitem"> 124 clock error handling as specified in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3135.html#935" target="_top">clock 125 error handling needs to be specified</a>. 126 </li> 127<li class="listitem"> 128 process and thread clocks. 129 </li> 130</ul></div> 131</div> 132<div class="section"> 133<div class="titlepage"><div><div><h5 class="title"> 134<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf" title="Configuration Macros">Configuration 135 Macros</a> 136</h5></div></div></div> 137<div class="section"> 138<div class="titlepage"><div><div><h6 class="title"> 139<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.assert"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.assert" title="How Assert Behaves?">How 140 Assert Behaves?</a> 141</h6></div></div></div> 142<p> 143 When <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code> 144 is defined, the user can select the way static assertions are reported. 145 Define 146 </p> 147<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 148<li class="listitem"> 149 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_STATIC_ASSERT</span></code>: 150 define it if you want to use Boost.StaticAssert. 151 </li> 152<li class="listitem"> 153 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_MPL_ASSERT</span></code>: 154 define it if you want to use Boost.MPL static assertions. 155 </li> 156<li class="listitem"> 157 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_ARRAY_ASSERT</span></code>: 158 define it if you want to use internal static assertions. 159 </li> 160</ul></div> 161<p> 162 The default behavior is as <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_ARRAY_ASSERT</span></code> 163 was defined. 164 </p> 165<p> 166 When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_USES_MPL_ASSERT</span></code> 167 is not defined the following symbols are defined as 168 </p> 169<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_A_DURATION_REPRESENTATION_CAN_NOT_BE_A_DURATION</span> <span class="special">\</span> 170 <span class="string">"A duration representation can not be a duration"</span> 171<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_SECOND_TEMPLATE_PARAMETER_OF_DURATION_MUST_BE_A_STD_RATIO</span> <span class="special">\</span> 172 <span class="string">"Second template parameter of duration must be a boost::ratio"</span> 173<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_DURATION_PERIOD_MUST_BE_POSITIVE</span> <span class="special">\</span> 174 <span class="string">"duration period must be positive"</span> 175<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_SECOND_TEMPLATE_PARAMETER_OF_TIME_POINT_MUST_BE_A_BOOST_CHRONO_DURATION</span> <span class="special">\</span> 176 <span class="string">"Second template parameter of time_point must be a boost::chrono::duration"</span> 177</pre> 178<p> 179 Depending on the static assertion used system you will have an hint 180 of the failing assertion either through the symbol or through the text. 181 </p> 182</div> 183<div class="section"> 184<div class="titlepage"><div><div><h6 class="title"> 185<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.no_hybrid"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.no_hybrid" title="Don't provide Hybrid Error Handling">Don't 186 provide Hybrid Error Handling</a> 187</h6></div></div></div> 188<p> 189 When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING</span></code> 190 is defined the lib doesn't provides the hybrid error handling prototypes: 191 </p> 192<pre class="programlisting"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">time_point</span> <span class="identifier">Clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">(</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&</span><span class="identifier">ec</span><span class="special">=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throws</span><span class="special">());</span> 193</pre> 194<p> 195 This allow to be closer to the standard and to avoid the Boost.System 196 dependency, making possible to have Boost.Chrono as a header-only library. 197 </p> 198<p> 199 By default <code class="computeroutput"><span class="identifier">BOOST_CHRONO_PROVIDE_HYBRID_ERROR_HANDLING</span></code> 200 is defined. 201 </p> 202</div> 203<div class="section"> 204<div class="titlepage"><div><div><h6 class="title"> 205<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.header_only"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.header_only" title="How to Build Boost.Chrono as a Header Only Library?">How 206 to Build Boost.Chrono as a Header Only Library?</a> 207</h6></div></div></div> 208<p> 209 When <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HEADER_ONLY</span></code> 210 is defined the lib is header-only. 211 </p> 212<p> 213 If in addition <code class="computeroutput"><span class="identifier">BOOST_USE_WINDOWS_H</span></code> 214 is defined <code class="computeroutput"><span class="special"><</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>. 217 </p> 218<p> 219 However, you will either need to define <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING</span></code> 220 or link with Boost.System. 221 </p> 222</div> 223<div class="section"> 224<div class="titlepage"><div><div><h6 class="title"> 225<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.deprecated_io"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.deprecated_io" title="Deprecated IO">Deprecated 226 IO</a> 227</h6></div></div></div> 228<p> 229 Version 2.0.0 deprecates the preceding IO features. 230 </p> 231<p> 232 However the default version is always version 1. If you don't want 233 to include the deprecated features you could define <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDES_DEPRECATED_IO_SINCE_V2_0_0</span></code>. 234 </p> 235</div> 236<div class="section"><div class="titlepage"><div><div><h6 class="title"> 237<a name="chrono.reference.cpp0x.chrono_chrono_hpp.conf.system_clock_time_point"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.system_clock_time_point" title="time_point<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> 244<p> 245 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_VERSION</span></code> 246 defines the Boost.Chrono version. The default version is 1. In this 247 case the following breaking or extending macros are defined if the 248 opposite is not requested: 249 </p> 250<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 251 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_PROVIDES_DEPRECATED_IO_SINCE_V2_0_0</span></code> 252 </li></ul></div> 253<p> 254 The user can request the version 2 by defining <code class="computeroutput"><span class="identifier">BOOST_CHRONO_VERSION</span></code> 255 to 2. In this case the following breaking or extending macros are defined 256 if the opposite is not requested: 257 </p> 258<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 259 Breaking change <code class="computeroutput"><span class="identifier">BOOST_CHRONO_DONT_PROVIDES_DEPRECATED_IO_SINCE_V2_0_0</span> 260 </code> 261 </li></ul></div> 262<p> 263 The default value for <code class="computeroutput"><span class="identifier">BOOST_CHRONO_VERSION</span></code> 264 will be changed to 2 since Boost 1.55. 265 </p> 266</div> 267</div> 268</div> 269<div class="section"> 270<div class="titlepage"><div><div><h4 class="title"> 271<a name="chrono.reference.cpp0x.duration_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp" title="Header <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> 284</dl></div> 285<p> 286 This file contains duration specific classes and non-member functions. 287 </p> 288<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 289 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 290 291 <span class="keyword">template</span> <span class="special"><</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> 292 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> 297 298 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 299 300 <span class="comment">// customization traits</span> 301 <span class="keyword">template</span> <span class="special"><</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> 303 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> 311 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> 318 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> 325 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> 332 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> 339 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> 346 347 <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_CHRONO_EXTENSIONS</span> 348 <span class="comment">// Used to get frequency of events</span> 349 <span class="keyword">template</span> <span class="special"><</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> 355 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> 361 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> 366 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> 375 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> 384 385 <span class="comment">// duration_cast</span> 386 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> 390 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> 398 399 <span class="special">}</span> 400<span class="special">}</span> 401</pre> 402<div class="section"> 403<div class="titlepage"><div><div><h5 class="title"> 404<a name="chrono.reference.cpp0x.duration_hpp.traits"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits" title="Time-related Traits">Time-related 405 Traits</a> 406</h5></div></div></div> 407<div class="section"> 408<div class="titlepage"><div><div><h6 class="title"> 409<a name="chrono.reference.cpp0x.duration_hpp.traits.treat_as_floating_point"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.treat_as_floating_point" title="Metafunction treat_as_floating_point<>">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> 414</pre> 415<p> 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 430 type. 431 </p> 432</div> 433<div class="section"> 434<div class="titlepage"><div><div><h6 class="title"> 435<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values">Class 436 Template <code class="computeroutput"><span class="identifier">duration_values</span></code></a> 437</h6></div></div></div> 438<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 446</pre> 447<p> 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. 456 </p> 457<div class="section"> 458<div class="titlepage"><div><div><h6 class="title"> 459<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values.zero"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.zero" title="Static Member Function zero()">Static 460 Member Function <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code></a> 461</h6></div></div></div> 462<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <span class="identifier">zero</span><span class="special">();</span> 463</pre> 464<p> 465 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">Rep</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code>. <span class="bold"><strong>Note:</strong></span> 466 <code class="computeroutput"><span class="identifier">Rep</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code> 467 is specified instead of <code class="computeroutput"><span class="identifier">Rep</span><span class="special">()</span></code> since <code class="computeroutput"><span class="identifier">Rep</span><span class="special">()</span></code> may have some other meaning, such 468 as an uninitialized value. 469 </p> 470<p> 471 <span class="bold"><strong>Remarks:</strong></span> The value returned corresponds 472 to the additive identity. 473 </p> 474</div> 475<div class="section"> 476<div class="titlepage"><div><div><h6 class="title"> 477<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values.max"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.max" title="Static Member Function max()">Static 478 Member Function <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code></a> 479</h6></div></div></div> 480<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <span class="identifier">max</span><span class="special">();</span> 481</pre> 482<p> 483 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></code>. 484 </p> 485<p> 486 <span class="bold"><strong>Remarks:</strong></span> The value returned compares 487 greater than zero(). 488 </p> 489</div> 490<div class="section"> 491<div class="titlepage"><div><div><h6 class="title"> 492<a name="chrono.reference.cpp0x.duration_hpp.traits.duration_values.min"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values.min" title="Static Member Function min()">Static 493 Member Function <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code></a> 494</h6></div></div></div> 495<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">Rep</span> <span class="identifier">min</span><span class="special">();</span> 496</pre> 497<p> 498 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>::</span><span class="identifier">lowest</span><span class="special">()</span></code>. 499 </p> 500<p> 501 <span class="bold"><strong>Remarks:</strong></span> The value returned compares 502 less than or equal to <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code>. 503 </p> 504</div> 505</div> 506</div> 507<div class="section"> 508<div class="titlepage"><div><div><h5 class="title"> 509<a name="chrono.reference.cpp0x.duration_hpp.common_type_spe"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.common_type_spe" title="common_type Specialization"><code class="computeroutput"><span class="identifier">common_type</span></code> Specialization</a> 510</h5></div></div></div> 511<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 516</pre> 517<p> 518 The period of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> indicated by this specialization 519 of <code class="computeroutput"><span class="identifier">common_type</span></code> is the 520 greatest common divisor of <code class="computeroutput"><span class="identifier">Period1</span></code> 521 and <code class="computeroutput"><span class="identifier">Period2</span></code>. This can 522 be computed by forming a <code class="computeroutput"><span class="identifier">ratio</span></code> 523 of the greatest common divisor of <code class="computeroutput"><span class="identifier">Period1</span><span class="special">::</span><span class="identifier">num</span></code> 524 and <code class="computeroutput"><span class="identifier">Period2</span><span class="special">::</span><span class="identifier">num</span></code>, and the least common multiple 525 of <code class="computeroutput"><span class="identifier">Period1</span><span class="special">::</span><span class="identifier">den</span></code> and <code class="computeroutput"><span class="identifier">Period2</span><span class="special">::</span><span class="identifier">den</span></code>. 526 </p> 527<p> 528 <span class="bold"><strong>Note:</strong></span> The typedef type is the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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). 534 </p> 535</div> 536<div class="section"> 537<div class="titlepage"><div><div><h5 class="title"> 538<a name="chrono.reference.cpp0x.duration_hpp.duration"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>">Class 539 Template <code class="computeroutput"><span class="identifier">duration</span><span class="special"><></span></code></a> 540</h5></div></div></div> 541<p> 542 A <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>. 547 </p> 548<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 549 550 <span class="keyword">template</span> <span class="special"><</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> 561 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> 564 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> 566 567 <span class="keyword">constexpr</span> <span class="identifier">rep</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.count" title="Member Function count() const"><code class="computeroutput"><span class="identifier">count</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 568 569 <span class="keyword">constexpr</span> <span class="identifier">duration</span> <span class="identifier">__duration__op_plus</span><span class="special">();</span> 570 <span class="keyword">constexpr</span> <span class="identifier">duration</span> <span class="identifier">__duration__op_minus</span><span class="special">();</span> 571 <span class="identifier">duration</span><span class="special">&</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> 575 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> 578 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> 583 584 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.zero" title="Static Member Function zero()"><code class="computeroutput"><span class="identifier">zero</span></code></a><span class="special">();</span> 585 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.min" title="Static Member Function min()"><code class="computeroutput"><span class="identifier">min</span></code></a><span class="special">();</span> 586 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.max" title="Static Member Function max()"><code class="computeroutput"><span class="identifier">max</span></code></a><span class="special">();</span> 587 <span class="special">};</span> 588 589<span class="special">}}</span> 590</pre> 591<p> 592 <code class="computeroutput"><span class="identifier">Rep</span></code> must be an arithmetic 593 type, or a class emulating an arithmetic type, compile diagnostic otherwise. 594 If <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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 597 is issued. 598 </p> 599<p> 600 <code class="computeroutput"><span class="identifier">Period</span></code> must be an instantiation 601 of <code class="computeroutput"><span class="identifier">ratio</span></code>, compile diagnostic 602 otherwise. 603 </p> 604<p> 605 <code class="computeroutput"><span class="identifier">Period</span><span class="special">::</span><span class="identifier">num</span></code> must be positive, compile diagnostic 606 otherwise. 607 </p> 608<p> 609 Examples: 610 </p> 611<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 612<li class="listitem"> 613 <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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 614 a long. 615 </li> 616<li class="listitem"> 617 <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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 618 using a long long. 619 </li> 620<li class="listitem"> 621 <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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). 624 </li> 625</ul></div> 626<p> 627 The following members of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> do not throw an exception 628 unless the indicated operations on the representations throw an exception. 629 </p> 630<div class="section"> 631<div class="titlepage"><div><div><h6 class="title"> 632<a name="chrono.reference.cpp0x.duration_hpp.duration.duration_c_0"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_0" title="Constructor duration()">Constructor 633 <code class="computeroutput"><span class="identifier">duration</span><span class="special">()</span></code></a> 634</h6></div></div></div> 635<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">duration</span><span class="special">();</span> 636</pre> 637<p> 638 <span class="bold"><strong>Effects:</strong></span> Constructs an object of type 639 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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. 643 </p> 644</div> 645<div class="section"> 646<div class="titlepage"><div><div><h6 class="title"> 647<a name="chrono.reference.cpp0x.duration_hpp.duration.duration_c_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_1" title="Constructor duration(const Rep2&)">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> 652</pre> 653<p> 654 <span class="bold"><strong>Remarks:</strong></span> <code class="computeroutput"><span class="identifier">Rep2</span></code> 655 is implicitly convertible to <code class="computeroutput"><span class="identifier">rep</span></code>, 656 and 657 </p> 658<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 659<li class="listitem"> 660 <code class="computeroutput"><span class="identifier">treat_as_floating_point</span><span class="special"><</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 662 </li> 663<li class="listitem"> 664 <code class="computeroutput"><span class="special">!</span><span class="identifier">treat_as_floating_point</span><span class="special"><</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>. 666 </li> 667</ul></div> 668<p> 669 If these constraints are not met, this constructor will not participate 670 in overload resolution. <span class="bold"><strong>Note:</strong></span> This 671 requirement prevents construction of an integral-based <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>. 674 </p> 675<p> 676 <span class="bold"><strong>Example:</strong></span> 677 </p> 678<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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> 680</pre> 681<p> 682 <span class="bold"><strong>Effects:</strong></span> Constructs an object of type 683 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>. 684 </p> 685<p> 686 <span class="bold"><strong>Post Conditions:</strong></span> <code class="computeroutput"><span class="identifier">count</span><span class="special">()</span> <span class="special">==</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">rep</span><span class="special">>(</span><span class="identifier">r</span><span class="special">)</span></code>. 687 </p> 688</div> 689<div class="section"> 690<div class="titlepage"><div><div><h6 class="title"> 691<a name="chrono.reference.cpp0x.duration_hpp.duration.duration_c_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.duration_c_2" title="Constructor duration(const duration&)">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> 696</pre> 697<p> 698 <span class="bold"><strong>Remarks:</strong></span> <code class="computeroutput"><span class="identifier">treat_as_floating_point</span><span class="special"><</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>. 706 </p> 707<p> 708 <span class="bold"><strong>Example:</strong></span> 709 </p> 710<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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> 713</pre> 714<p> 715 <span class="bold"><strong>Effects:</strong></span> Constructs an object of type 716 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>. 717 </p> 718</div> 719<div class="section"> 720<div class="titlepage"><div><div><h6 class="title"> 721<a name="chrono.reference.cpp0x.duration_hpp.duration.count"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.count" title="Member Function count() const">Member 722 Function <code class="computeroutput"><span class="identifier">count</span><span class="special">()</span> 723 <span class="keyword">const</span></code></a> 724</h6></div></div></div> 725<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">rep</span> <span class="identifier">count</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 726</pre> 727<p> 728 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span></code>. 729 </p> 730</div> 731<div class="section"> 732<div class="titlepage"><div><div><h6 class="title"> 733<a name="chrono.reference.cpp0x.duration_hpp.duration.op_unary_plus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_unary_plus" title="Member Function operator+() const">Member 734 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+()</span> 735 <span class="keyword">const</span></code></a> 736</h6></div></div></div> 737<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">+()</span> <span class="keyword">const</span><span class="special">;</span> 738</pre> 739<p> 740 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 741 </p> 742</div> 743<div class="section"> 744<div class="titlepage"><div><div><h6 class="title"> 745<a name="chrono.reference.cpp0x.duration_hpp.duration.op_unary_minus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_unary_minus" title="Member Function operator-() const">Member 746 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-()</span> 747 <span class="keyword">const</span></code></a> 748</h6></div></div></div> 749<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">-()</span> <span class="keyword">const</span><span class="special">;</span> 750</pre> 751<p> 752 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(-</span><span class="identifier">rep_</span><span class="special">)</span></code>. 753 </p> 754</div> 755<div class="section"> 756<div class="titlepage"><div><div><h6 class="title"> 757<a name="chrono.reference.cpp0x.duration_hpp.duration.op_pre_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_pre_inc" title="Member Function operator++()">Member 758 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++()</span></code></a> 759</h6></div></div></div> 760<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span> 761</pre> 762<p> 763 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">++</span><span class="identifier">rep_</span></code>. 764 </p> 765<p> 766 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 767 </p> 768</div> 769<div class="section"> 770<div class="titlepage"><div><div><h6 class="title"> 771<a name="chrono.reference.cpp0x.duration_hpp.duration.op_post_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_post_inc" title="Member Function operator++(int)">Member 772 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span></code></a> 773</h6></div></div></div> 774<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span> 775</pre> 776<p> 777 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><span class="identifier">rep_</span><span class="special">++)</span></code>. 778 </p> 779</div> 780<div class="section"> 781<div class="titlepage"><div><div><h6 class="title"> 782<a name="chrono.reference.cpp0x.duration_hpp.duration.op_pre_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_pre_dec" title="Member Function operator--()">Member 783 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--()</span></code></a> 784</h6></div></div></div> 785<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span> 786</pre> 787<p> 788 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">--</span><span class="identifier">rep_</span></code>. 789 </p> 790<p> 791 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 792 </p> 793</div> 794<div class="section"> 795<div class="titlepage"><div><div><h6 class="title"> 796<a name="chrono.reference.cpp0x.duration_hpp.duration.op_post_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_post_dec" title="Member Function operator--(int)">Member 797 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span></code></a> 798</h6></div></div></div> 799<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span> 800</pre> 801<p> 802 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a><span class="special">(</span><span class="identifier">rep_</span><span class="special">--)</span></code>. 803 </p> 804</div> 805<div class="section"> 806<div class="titlepage"><div><div><h6 class="title"> 807<a name="chrono.reference.cpp0x.duration_hpp.duration.op_plus_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_plus_eq" title="Member Function operator+=(const duration&)">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> 811</pre> 812<p> 813 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span> 814 <span class="special">+=</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()</span></code>. 815 </p> 816<p> 817 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 818 </p> 819</div> 820<div class="section"> 821<div class="titlepage"><div><div><h6 class="title"> 822<a name="chrono.reference.cpp0x.duration_hpp.duration.op_minus_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_minus_eq" title="Member Function operator-=(const duration&)">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> 826</pre> 827<p> 828 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span> 829 <span class="special">-=</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()</span></code>. 830 </p> 831<p> 832 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 833 </p> 834</div> 835<div class="section"> 836<div class="titlepage"><div><div><h6 class="title"> 837<a name="chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq" title="Member Function operator%=(const duration&)">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> 841</pre> 842<p> 843 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span> 844 <span class="special">%=</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">()</span></code>. 845 </p> 846<p> 847 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 848 </p> 849</div> 850<div class="section"> 851<div class="titlepage"><div><div><h6 class="title"> 852<a name="chrono.reference.cpp0x.duration_hpp.duration.op_mult_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mult_eq" title="Member Function operator*=(const rep&)">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> 856</pre> 857<p> 858 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span> 859 <span class="special">*=</span> <span class="identifier">rhs</span></code>. 860 </p> 861<p> 862 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 863 </p> 864</div> 865<div class="section"> 866<div class="titlepage"><div><div><h6 class="title"> 867<a name="chrono.reference.cpp0x.duration_hpp.duration.op_div_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_div_eq" title="Member Function operator/=(const rep&)">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> 871</pre> 872<p> 873 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span> 874 <span class="special">/=</span> <span class="identifier">rhs</span></code>. 875 </p> 876<p> 877 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 878 </p> 879</div> 880<div class="section"> 881<div class="titlepage"><div><div><h6 class="title"> 882<a name="chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.op_mod_eq2" title="Member Function operator%=(const rep&)">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> 886</pre> 887<p> 888 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rep_</span> 889 <span class="special">%=</span> <span class="identifier">rhs</span></code>. 890 </p> 891<p> 892 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 893 </p> 894</div> 895<div class="section"> 896<div class="titlepage"><div><div><h6 class="title"> 897<a name="chrono.reference.cpp0x.duration_hpp.duration.zero"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.zero" title="Static Member Function zero()">Static 898 Member Function <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code></a> 899</h6></div></div></div> 900<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">zero</span><span class="special">();</span> 901</pre> 902<p> 903 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>. 904 </p> 905</div> 906<div class="section"> 907<div class="titlepage"><div><div><h6 class="title"> 908<a name="chrono.reference.cpp0x.duration_hpp.duration.min"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.min" title="Static Member Function min()">Static 909 Member Function <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code></a> 910</h6></div></div></div> 911<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">min</span><span class="special">();</span> 912</pre> 913<p> 914 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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> 915 </p> 916</div> 917<div class="section"> 918<div class="titlepage"><div><div><h6 class="title"> 919<a name="chrono.reference.cpp0x.duration_hpp.duration.max"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration.max" title="Static Member Function max()">Static 920 Member Function <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code></a> 921</h6></div></div></div> 922<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> <span class="identifier">max</span><span class="special">();</span> 923</pre> 924<p> 925 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>. 926 </p> 927</div> 928</div> 929<div class="section"> 930<div class="titlepage"><div><div><h5 class="title"> 931<a name="chrono.reference.cpp0x.duration_hpp.arith"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith" title="duration Non-Member Arithmetic"><code class="computeroutput"><span class="identifier">duration</span></code> Non-Member Arithmetic</a> 932</h5></div></div></div> 933<div class="section"> 934<div class="titlepage"><div><div><h6 class="title"> 935<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_plus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_plus_1" title="Non-Member Function operator+(duration,duration)">Non-Member 936 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 937</h6></div></div></div> 938<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 942</pre> 943<p> 944 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">CD</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">())</span></code> 945 where <code class="computeroutput"><span class="identifier">CD</span></code> is the type 946 of the return value. 947 </p> 948</div> 949<div class="section"> 950<div class="titlepage"><div><div><h6 class="title"> 951<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_minus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_minus_1" title="Non-Member Function operator-(duration,duration)">Non-Member 952 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 953</h6></div></div></div> 954<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 958</pre> 959<p> 960 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">CD</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">())</span></code> 961 where <code class="computeroutput"><span class="identifier">CD</span></code> is the type 962 of the return value. 963 </p> 964</div> 965<div class="section"> 966<div class="titlepage"><div><div><h6 class="title"> 967<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_1" title="Non-Member Function operator*(duration,Rep1)">Non-Member 968 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">Rep1</span><span class="special">)</span></code></a> 969</h6></div></div></div> 970<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 974</pre> 975<p> 976 <span class="bold"><strong>Requires:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code> 977 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 978 of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate 979 in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code> 980 and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly 981 convertible to <code class="computeroutput"><span class="identifier">CR</span></code>. 982 </p> 983<p> 984 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">*</span> <span class="identifier">s</span><span class="special">)</span></code> 985 where <code class="computeroutput"><span class="identifier">CD</span></code> is the type 986 of the return value. 987 </p> 988</div> 989<div class="section"> 990<div class="titlepage"><div><div><h6 class="title"> 991<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mult_2" title="Non-Member Function operator*(Rep1,duration)">Non-Member 992 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*(</span><span class="identifier">Rep1</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 993</h6></div></div></div> 994<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 998</pre> 999<p> 1000 <span class="bold"><strong>Requires:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code> 1001 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 1002 of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate 1003 in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code> 1004 and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly 1005 convertible to <code class="computeroutput"><span class="identifier">CR</span></code>. 1006 </p> 1007<p> 1008 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">d</span> 1009 <span class="special">*</span> <span class="identifier">s</span></code>. 1010 </p> 1011</div> 1012<div class="section"> 1013<div class="titlepage"><div><div><h6 class="title"> 1014<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_1" title="Non-Member Function operator/(duration,Rep2)">Non-Member 1015 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">/(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">Rep2</span><span class="special">)</span></code></a> 1016</h6></div></div></div> 1017<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1021</pre> 1022<p> 1023 <span class="bold"><strong>Requires:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code> 1024 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 1025 of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate 1026 in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code> 1027 and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly 1028 convertible to <code class="computeroutput"><span class="identifier">CR</span></code>, 1029 and <code class="computeroutput"><span class="identifier">Rep2</span></code> is not an 1030 instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>. 1031 </p> 1032<p> 1033 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">/</span> <span class="identifier">s</span><span class="special">)</span></code> 1034 where <code class="computeroutput"><span class="identifier">CD</span></code> is the type 1035 of the return value. 1036 </p> 1037</div> 1038<div class="section"> 1039<div class="titlepage"><div><div><h6 class="title"> 1040<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_2" title="Non-Member Function operator/(duration,duration)">Non-Member 1041 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">/(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 1042</h6></div></div></div> 1043<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1047</pre> 1048<p> 1049 <span class="bold"><strong>Remarks:</strong></span> Let <code class="computeroutput"><span class="identifier">CD</span></code> 1050 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 1051 of the two <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> arguments. <span class="bold"><strong>Returns:</strong></span> Returns <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">/</span> <span class="identifier">CD</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span></code>. 1052 </p> 1053</div> 1054<div class="section"> 1055<div class="titlepage"><div><div><h6 class="title"> 1056<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_3"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_div_3" title="Non-Member Function operator/(Rep1,duration)">Non-Member 1057 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">/(</span><span class="identifier">Rep1</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 1058</h6></div></div></div> 1059<p> 1060 Included only if BOOST_CHRONO_EXTENSIONS is defined. 1061 </p> 1062<p> 1063 This overloading could be used to get the frequency of an event counted 1064 by <code class="computeroutput"><span class="identifier">Rep1</span></code>. 1065 </p> 1066<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1069</pre> 1070<p> 1071 <span class="bold"><strong>Remarks:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code> 1072 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 1073 of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate 1074 in overload resolution unless both <code class="computeroutput"><span class="identifier">Rep1</span></code> 1075 and <code class="computeroutput"><span class="identifier">Rep2</span></code> are implicitly 1076 convertible to <code class="computeroutput"><span class="identifier">CR</span></code>, 1077 and <code class="computeroutput"><span class="identifier">Rep1</span></code> is not an 1078 instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>. 1079 </p> 1080<p> 1081 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CR</span><span class="special">(</span><span class="identifier">s</span><span class="special">)/</span><span class="identifier">CD</span><span class="special">(</span><span class="identifier">d</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span></code> where <code class="computeroutput"><span class="identifier">CD</span></code> 1082 is the type of the return value. 1083 </p> 1084</div> 1085<div class="section"> 1086<div class="titlepage"><div><div><h6 class="title"> 1087<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_1" title="Non-Member Function operator%(duration,Rep2)">Non-Member 1088 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">Rep2</span><span class="special">)</span></code></a> 1089</h6></div></div></div> 1090<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1094</pre> 1095<p> 1096 <span class="bold"><strong>Remarks:</strong></span> Let <code class="computeroutput"><span class="identifier">CR</span></code> 1097 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 1098 of <code class="computeroutput"><span class="identifier">Rep1</span></code> and <code class="computeroutput"><span class="identifier">Rep2</span></code>. This function will not participate 1099 in overload resolution unless Rep2 must be implicitly convertible to 1100 CR and Rep2 must not be an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>. 1101 </p> 1102<p> 1103 <span class="bold"><strong>Returns:</strong></span> CD(CD(d).count() % s) where 1104 <code class="computeroutput"><span class="identifier">CD</span></code> is the type of the 1105 return value. 1106 </p> 1107</div> 1108<div class="section"> 1109<div class="titlepage"><div><div><h6 class="title"> 1110<a name="chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.arith.duration__op_mod_2" title="Non-Member Function operator%(duration,duration)">Non-Member 1111 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">%(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 1112</h6></div></div></div> 1113<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1118</pre> 1119<p> 1120 <span class="bold"><strong>Remarks:</strong></span> This function will not participate 1121 in overload resolution unless 1122 </p> 1123<p> 1124 <span class="bold"><strong>Returns:</strong></span> CD(CD(lhs).count() % CD(rhs).count()) 1125 where <code class="computeroutput"><span class="identifier">CD</span></code> is the type 1126 of the return value. 1127 </p> 1128</div> 1129</div> 1130<div class="section"> 1131<div class="titlepage"><div><div><h5 class="title"> 1132<a name="chrono.reference.cpp0x.duration_hpp.cmp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp" title="duration Non-Member Comparaisons"><code class="computeroutput"><span class="identifier">duration</span></code> Non-Member Comparaisons</a> 1133</h5></div></div></div> 1134<div class="section"> 1135<div class="titlepage"><div><div><h6 class="title"> 1136<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_eq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_eq_1" title="Non-Member Function operator==(duration,duration)">Non-Member 1137 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">==(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 1138</h6></div></div></div> 1139<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1142</pre> 1143<p> 1144 <span class="bold"><strong>Returns:</strong></span> Let <code class="computeroutput"><span class="identifier">CD</span></code> 1145 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 1146 of the two <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> arguments. 1147 </p> 1148<p> 1149 <span class="bold"><strong>Returns:</strong></span> Returns <code class="computeroutput"><span class="identifier">CD</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span> <span class="special">==</span> <span class="identifier">CD</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">).</span><span class="identifier">count</span><span class="special">()</span></code> 1150 </p> 1151</div> 1152<div class="section"> 1153<div class="titlepage"><div><div><h6 class="title"> 1154<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_neq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_neq_1" title="Non-Member Function operator!=(duration,duration)">Non-Member 1155 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 1156</h6></div></div></div> 1157<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1160</pre> 1161<p> 1162 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special">==</span> 1163 <span class="identifier">rhs</span><span class="special">)</span></code>. 1164 </p> 1165</div> 1166<div class="section"> 1167<div class="titlepage"><div><div><h6 class="title"> 1168<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_lt_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_lt_1" title="Non-Member Function operator<(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> 1174</pre> 1175<p> 1176 <span class="bold"><strong>Returns:</strong></span> Let <code class="computeroutput"><span class="identifier">CD</span></code> 1177 represent the <code class="computeroutput"><span class="identifier">common_type</span></code> 1178 of the two <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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> 1181 </p> 1182</div> 1183<div class="section"> 1184<div class="titlepage"><div><div><h6 class="title"> 1185<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_leq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_leq_1" title="Non-Member Function operator<=(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> 1191</pre> 1192<p> 1193 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">rhs</span> <span class="special"><</span> 1194 <span class="identifier">lhs</span><span class="special">)</span></code>. 1195 </p> 1196</div> 1197<div class="section"> 1198<div class="titlepage"><div><div><h6 class="title"> 1199<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_gt_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_gt_1" title="Non-Member Function operator>(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> 1205</pre> 1206<p> 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>. 1209 </p> 1210</div> 1211<div class="section"> 1212<div class="titlepage"><div><div><h6 class="title"> 1213<a name="chrono.reference.cpp0x.duration_hpp.cmp.duration__op_geq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.cmp.duration__op_geq_1" title="Non-Member Function operator>=(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> 1219</pre> 1220<p> 1221 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special"><</span> 1222 <span class="identifier">rhs</span><span class="special">)</span></code>. 1223 </p> 1224</div> 1225</div> 1226<div class="section"> 1227<div class="titlepage"><div><div><h5 class="title"> 1228<a name="chrono.reference.cpp0x.duration_hpp.duration_cast"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_cast" title="Non-Member Function duration_cast(duration)">Non-Member 1229 Function <code class="computeroutput"><span class="identifier">duration_cast</span><span class="special">(</span><span class="identifier">duration</span><span class="special">)</span></code></a> 1230</h5></div></div></div> 1231<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1233</pre> 1234<p> 1235 <span class="bold"><strong>Requires:</strong></span> This function will not participate 1236 in overload resolution unless <code class="computeroutput"><span class="identifier">ToDuration</span></code> 1237 is an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>. 1238 </p> 1239<p> 1240 <span class="bold"><strong>Returns:</strong></span> Forms <code class="computeroutput"><span class="identifier">CF</span></code> 1241 which is a <code class="computeroutput"><span class="identifier">ratio</span></code> resulting 1242 from <code class="computeroutput"><span class="identifier">ratio_divide</span><span class="special"><</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>. 1245 </p> 1246<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1247<li class="listitem"> 1248 If <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span> <span class="special">==</span> 1249 <span class="number">1</span></code> and <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span> 1250 <span class="special">==</span> <span class="number">1</span></code>, 1251 then returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</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> 1253 </code> 1254 </li> 1255<li class="listitem"> 1256 else if <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span> <span class="special">!=</span> 1257 <span class="number">1</span></code> and <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span> 1258 <span class="special">==</span> <span class="number">1</span></code>, 1259 then returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</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> 1262 </li> 1263<li class="listitem"> 1264 else if <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">num</span> <span class="special">==</span> 1265 <span class="number">1</span></code> and <code class="computeroutput"><span class="identifier">CF</span><span class="special">::</span><span class="identifier">den</span> 1266 <span class="special">!=</span> <span class="number">1</span></code>, 1267 then returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</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> 1270 </li> 1271<li class="listitem"> 1272 else returns <code class="computeroutput"><span class="identifier">ToDuration</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</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> 1275 </li> 1276</ul></div> 1277<p> 1278 <span class="bold"><strong>Remarks:</strong></span> This function does not rely 1279 on any implicit conversions. All conversions must be accomplished through 1280 <code class="computeroutput"><span class="keyword">static_cast</span></code>. The implementation 1281 avoids all multiplications or divisions when it is known at compile-time 1282 that it can be avoided because one or more arguments are <code class="computeroutput"><span class="number">1</span></code>. All intermediate computations are carried 1283 out in the widest possible representation and only converted to the destination 1284 representation at the final step. 1285 </p> 1286</div> 1287<div class="section"> 1288<div class="titlepage"><div><div><h5 class="title"> 1289<a name="chrono.reference.cpp0x.duration_hpp.duration_typedefs"></a><a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">duration</span></code> typedefs</a> 1290</h5></div></div></div> 1291<pre class="programlisting"><span class="comment">// convenience typedefs</span> 1292<span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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> 1298</pre> 1299</div> 1300</div> 1301<div class="section"> 1302<div class="titlepage"><div><div><h4 class="title"> 1303<a name="chrono.reference.cpp0x.clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code> 1304 Requirements</a> 1305</h4></div></div></div> 1306<p> 1307 A clock represents a bundle consisting of a <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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. 1310 </p> 1311<p> 1312 In this table <code class="computeroutput"><span class="identifier">C1</span></code> and <code class="computeroutput"><span class="identifier">C2</span></code> denote <code class="computeroutput"><span class="identifier">Clock</span></code> 1313 types. <code class="computeroutput"><span class="identifier">t1</span></code> and <code class="computeroutput"><span class="identifier">t2</span></code> are values returned from <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> 1314 where the call returning <code class="computeroutput"><span class="identifier">t1</span></code> 1315 happens before the call returning <code class="computeroutput"><span class="identifier">t2</span></code> 1316 and both of these calls occur before <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">::</span><span class="identifier">max</span><span class="special">()</span></code>. (note This means C1 did not wrap around 1317 between t1 and t2.). 1318 </p> 1319<div class="table"> 1320<a name="chrono.reference.cpp0x.clock.clock_requirements"></a><p class="title"><b>Table 7.1. Clock Requirements</b></p> 1321<div class="table-contents"><table class="table" summary="Clock Requirements"> 1322<colgroup> 1323<col> 1324<col> 1325<col> 1326</colgroup> 1327<thead><tr> 1328<th> 1329 <p> 1330 expression 1331 </p> 1332 </th> 1333<th> 1334 <p> 1335 return type 1336 </p> 1337 </th> 1338<th> 1339 <p> 1340 operational semantics 1341 </p> 1342 </th> 1343</tr></thead> 1344<tbody> 1345<tr> 1346<td> 1347 <p> 1348 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">rep</span></code> 1349 </p> 1350 </td> 1351<td> 1352 <p> 1353 An arithmetic type or class emulating an arithmetic type. 1354 </p> 1355 </td> 1356<td> 1357 <p> 1358 The representation type of the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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>. 1359 </p> 1360 </td> 1361</tr> 1362<tr> 1363<td> 1364 <p> 1365 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">period</span></code> 1366 </p> 1367 </td> 1368<td> 1369 <p> 1370 <code class="computeroutput"><span class="identifier">ratio</span></code> 1371 </p> 1372 </td> 1373<td> 1374 <p> 1375 The tick period of the clock in seconds. 1376 </p> 1377 </td> 1378</tr> 1379<tr> 1380<td> 1381 <p> 1382 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">duration</span></code> 1383 </p> 1384 </td> 1385<td> 1386 <p> 1387 <code class="computeroutput"><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</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> 1389 </p> 1390 </td> 1391<td> 1392 <p> 1393 The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> type of the 1394 <code class="computeroutput"><span class="identifier">clock</span></code>. 1395 </p> 1396 </td> 1397</tr> 1398<tr> 1399<td> 1400 <p> 1401 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code> 1402 </p> 1403 </td> 1404<td> 1405 <p> 1406 <code class="computeroutput"><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</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> 1408 </p> 1409 </td> 1410<td> 1411 <p> 1412 The <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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. 1418 </p> 1419 </td> 1420</tr> 1421<tr> 1422<td> 1423 <p> 1424 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">is_steady</span></code> 1425 </p> 1426 </td> 1427<td> 1428 <p> 1429 <code class="computeroutput"><span class="keyword">constexpr</span> <span class="keyword">bool</span></code> 1430 </p> 1431 </td> 1432<td> 1433 <p> 1434 <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">t1</span> <span class="special"><=</span> 1435 <span class="identifier">t2</span></code> is always <code class="computeroutput"><span class="keyword">true</span></code>, else <code class="computeroutput"><span class="keyword">false</span></code>. 1436 <span class="bold"><strong>Note</strong></span>: A <code class="computeroutput"><span class="identifier">clock</span></code> 1437 that can be adjusted backwards is not steady 1438 </p> 1439 </td> 1440</tr> 1441<tr> 1442<td> 1443 <p> 1444 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> 1445 </p> 1446 </td> 1447<td> 1448 <p> 1449 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code> 1450 </p> 1451 </td> 1452<td> 1453 <p> 1454 Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> representing 1455 the current point in time. 1456 </p> 1457 </td> 1458</tr> 1459</tbody> 1460</table></div> 1461</div> 1462<br class="table-break"><p> 1463 Models of <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>: 1464 </p> 1465<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1466<li class="listitem"> 1467 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> 1468 </li> 1469<li class="listitem"> 1470 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> 1471 </li> 1472<li class="listitem"> 1473 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a> 1474 </li> 1475<li class="listitem"> 1476 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> 1477 </li> 1478<li class="listitem"> 1479 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> 1480 </li> 1481<li class="listitem"> 1482 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> 1483 </li> 1484<li class="listitem"> 1485 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock"><code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a> 1486 </li> 1487<li class="listitem"> 1488 <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a> 1489 </li> 1490</ul></div> 1491</div> 1492<div class="section"> 1493<div class="titlepage"><div><div><h4 class="title"> 1494<a name="chrono.reference.cpp0x.trivial_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.trivial_clock" title="TrivialClock Requirements"><code class="computeroutput"><span class="identifier">TrivialClock</span></code> Requirements</a> 1495</h4></div></div></div> 1496<p> 1497 A type <code class="computeroutput"><span class="identifier">TC</span></code> meets the <code class="computeroutput"><span class="identifier">TrivialClock</span></code> requirements if: 1498 </p> 1499<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1500<li class="listitem"> 1501 <code class="computeroutput"><span class="identifier">TC</span></code> satisfies the <code class="computeroutput"><span class="identifier">Clock</span></code> requirements, 1502 </li> 1503<li class="listitem"> 1504 the types <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">rep</span></code>, <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">duration</span></code>, 1505 and <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">time_point</span></code> satisfy the requirements 1506 of <code class="computeroutput"><span class="identifier">EqualityComparable</span></code>, 1507 <code class="computeroutput"><span class="identifier">LessThanComparable</span></code>, 1508 <code class="computeroutput"><span class="identifier">DefaultConstructible</span></code>, 1509 <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>, 1510 <code class="computeroutput"><span class="identifier">CopyAssignable</span></code>, <code class="computeroutput"><span class="identifier">Destructible</span></code>, and the requirements 1511 of numeric types. 1512 </li> 1513</ul></div> 1514<div class="note"><table border="0" summary="Note"> 1515<tr> 1516<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 1517<th align="left">Note</th> 1518</tr> 1519<tr><td align="left" valign="top"><p> 1520 This means, in particular, that operations on these types will not throw 1521 exceptions. 1522 </p></td></tr> 1523</table></div> 1524<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1525<li class="listitem"> 1526 lvalues of the types <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">rep</span></code>, 1527 <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">duration</span></code>, and <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">time_point</span></code> 1528 are swappable, 1529 </li> 1530<li class="listitem"> 1531 the function <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> 1532 does not throw exceptions and it is thread-safe, and 1533 </li> 1534<li class="listitem"> 1535 the type <code class="computeroutput"><span class="identifier">TC</span><span class="special">::</span><span class="identifier">time_point</span><span class="special">::</span><span class="identifier">clock</span></code> meets the <code class="computeroutput"><span class="identifier">TrivialClock</span></code> 1536 requirements, recursively. 1537 </li> 1538</ul></div> 1539<p> 1540 Models of <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">TrivialClock</span></code></a>: 1541 </p> 1542<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1543<li class="listitem"> 1544 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> 1545 </li> 1546<li class="listitem"> 1547 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> 1548 </li> 1549<li class="listitem"> 1550 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a> 1551 </li> 1552<li class="listitem"> 1553 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> 1554 </li> 1555<li class="listitem"> 1556 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> 1557 </li> 1558<li class="listitem"> 1559 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> 1560 </li> 1561<li class="listitem"> 1562 <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a> 1563 </li> 1564</ul></div> 1565</div> 1566<div class="section"> 1567<div class="titlepage"><div><div><h4 class="title"> 1568<a name="chrono.reference.cpp0x.ecclock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.ecclock" title="EcClock Requirements"><code class="computeroutput"><span class="identifier">EcClock</span></code> 1569 Requirements</a> 1570</h4></div></div></div> 1571<p> 1572 A type <code class="computeroutput"><span class="identifier">EcC</span></code> meets the <code class="computeroutput"><span class="identifier">EcClock</span></code> requirements if 1573 </p> 1574<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1575<li class="listitem"> 1576 <code class="computeroutput"><span class="identifier">TC</span></code> satisfies the <code class="computeroutput"><span class="identifier">TrivialClock</span> </code> requirements, and 1577 </li> 1578<li class="listitem"> 1579 it adds <code class="computeroutput"><span class="identifier">now</span><span class="special">()</span></code> 1580 interfaces allowing to recover internal error codes as described in 1581 the following table. 1582 </li> 1583<li class="listitem"> 1584 the added now() function is thread-safe. 1585 </li> 1586</ul></div> 1587<p> 1588 In this table <code class="computeroutput"><span class="identifier">C1</span></code> denotes 1589 a <code class="computeroutput"><span class="identifier">EcClock</span></code> type and <code class="computeroutput"><span class="identifier">ec</span></code> is an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span></code>. 1590 </p> 1591<div class="table"> 1592<a name="chrono.reference.cpp0x.ecclock.clock_requirements"></a><p class="title"><b>Table 7.2. Clock Requirements</b></p> 1593<div class="table-contents"><table class="table" summary="Clock Requirements"> 1594<colgroup> 1595<col> 1596<col> 1597<col> 1598</colgroup> 1599<thead><tr> 1600<th> 1601 <p> 1602 expression 1603 </p> 1604 </th> 1605<th> 1606 <p> 1607 return type 1608 </p> 1609 </th> 1610<th> 1611 <p> 1612 operational semantics 1613 </p> 1614 </th> 1615</tr></thead> 1616<tbody> 1617<tr> 1618<td> 1619 <p> 1620 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">(</span><span class="identifier">ec</span><span class="special">)</span></code> 1621 </p> 1622 </td> 1623<td> 1624 <p> 1625 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code> 1626 </p> 1627 </td> 1628<td> 1629 <p> 1630 Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> representing 1631 the current point in time. <code class="computeroutput"><span class="identifier">ec</span></code> 1632 will stores the error-code in case something was wrong internally. 1633 </p> 1634 </td> 1635</tr> 1636<tr> 1637<td> 1638 <p> 1639 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">now</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throws</span><span class="special">())</span></code> 1640 </p> 1641 </td> 1642<td> 1643 <p> 1644 <code class="computeroutput"><span class="identifier">C1</span><span class="special">::</span><span class="identifier">time_point</span></code> 1645 </p> 1646 </td> 1647<td> 1648 <p> 1649 Returns a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> representing 1650 the current point in time. Throws a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">system_error</span></code> 1651 exception in case something was wrong internally. 1652 </p> 1653 </td> 1654</tr> 1655</tbody> 1656</table></div> 1657</div> 1658<br class="table-break"><p> 1659 Models of <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a>: 1660 </p> 1661<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1662<li class="listitem"> 1663 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> 1664 </li> 1665<li class="listitem"> 1666 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> 1667 </li> 1668<li class="listitem"> 1669 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a> 1670 </li> 1671<li class="listitem"> 1672 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> 1673 </li> 1674<li class="listitem"> 1675 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> 1676 </li> 1677<li class="listitem"> 1678 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> 1679 </li> 1680<li class="listitem"> 1681 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock"><code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a> 1682 </li> 1683<li class="listitem"> 1684 <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a> 1685 </li> 1686</ul></div> 1687</div> 1688<div class="section"> 1689<div class="titlepage"><div><div><h4 class="title"> 1690<a name="chrono.reference.cpp0x.time_point_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp" title="Header <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> 1700</dl></div> 1701<p> 1702 This file contains <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> specific classes and 1703 non-member functions. 1704 </p> 1705<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 1706 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 1707 1708 <span class="keyword">template</span> <span class="special"><</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> 1710 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> 1715 1716 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 1717 1718 <span class="comment">// time_point arithmetic</span> 1719 <span class="keyword">template</span> <span class="special"><</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> 1723 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> 1728 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> 1733 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> 1738 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> 1764 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> 1769 1770 <span class="special">}</span> 1771<span class="special">}</span> 1772</pre> 1773<div class="section"> 1774<div class="titlepage"><div><div><h5 class="title"> 1775<a name="chrono.reference.cpp0x.time_point_hpp.common_type_spe2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.common_type_spe2" title="common_type specialization"><code class="computeroutput"><span class="identifier">common_type</span></code> specialization</a> 1776</h5></div></div></div> 1777<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1782</pre> 1783<p> 1784 The <code class="computeroutput"><span class="identifier">common_type</span></code> of two 1785 <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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. 1787 </p> 1788</div> 1789<div class="section"> 1790<div class="titlepage"><div><div><h5 class="title"> 1791<a name="chrono.reference.cpp0x.time_point_hpp.time_point"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>">Class 1792 template <code class="computeroutput"><span class="identifier">time_point</span><span class="special"><></span></code></a> 1793</h5></div></div></div> 1794<p> 1795 A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> represents a point 1796 in time with respect to a specific clock. 1797 </p> 1798<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 1809 1810 <span class="keyword">constexpr</span> <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_2" title="Constructor time_point(const duration&)"><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> 1811 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> 1816 1817 <span class="comment">// observer</span> 1818 <span class="keyword">constexpr</span> <span class="identifier">duration</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_since_epoch" title="Member Function time_since_epoch() const"><code class="computeroutput"><span class="identifier">time_since_epoch</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 1819 1820 <span class="comment">// arithmetic</span> 1821 1822 <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_CHRONO_EXTENSIONS</span> 1823 <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_plus" title="Member Function operator+() const"><code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code></a><span class="special">();</span> 1824 <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_minus" title="Member Function operator-() const"><code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code></a><span class="special">();</span> 1825 <span class="identifier">time_point</span><span class="special">&</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> 1829 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> 1833 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> 1836 1837 <span class="comment">// special values</span> 1838 1839 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.min" title="Static Member Function min"><code class="computeroutput"><span class="identifier">min</span></code></a><span class="special">();</span> 1840 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.max" title="Static Member Function max"><code class="computeroutput"><span class="identifier">max</span></code></a><span class="special">();</span> 1841<span class="special">};</span> 1842</pre> 1843<p> 1844 Clock must meet the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> requirements. 1845 </p> 1846<p> 1847 Duration must be an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>, compile diagnostic 1848 otherwise. 1849 </p> 1850<div class="section"> 1851<div class="titlepage"><div><div><h6 class="title"> 1852<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_1" title="Constructor time_point()">Constructor 1853 <code class="computeroutput"><span class="identifier">time_point</span><span class="special">()</span></code></a> 1854</h6></div></div></div> 1855<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">time_point</span><span class="special">();</span> 1856</pre> 1857<p> 1858 <span class="bold"><strong>Effects:</strong></span> Constructs an object of 1859 <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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 1862 epoch. 1863 </p> 1864</div> 1865<div class="section"> 1866<div class="titlepage"><div><div><h6 class="title"> 1867<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_2" title="Constructor time_point(const duration&)">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> 1871</pre> 1872<p> 1873 <span class="bold"><strong>Effects:</strong></span> Constructs an object of 1874 <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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>. 1877 </p> 1878</div> 1879<div class="section"> 1880<div class="titlepage"><div><div><h6 class="title"> 1881<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_3"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_point_c_3" title="Copy Constructor time_point(const time_point&)">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> 1887</pre> 1888<p> 1889 <span class="bold"><strong>Requires:</strong></span> This function will not participate 1890 in overload resolution unless <code class="computeroutput"><span class="identifier">Duration2</span></code> 1891 is implicitly convertible to <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>. 1892 </p> 1893<p> 1894 <span class="bold"><strong>Effects:</strong></span> Constructs an object of 1895 <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a>, initializing 1896 <code class="computeroutput"><span class="identifier">d_</span></code> with <code class="computeroutput"><span class="identifier">t</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span></code>. 1897 </p> 1898</div> 1899<div class="section"> 1900<div class="titlepage"><div><div><h6 class="title"> 1901<a name="chrono.reference.cpp0x.time_point_hpp.time_point.time_since_epoch"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.time_since_epoch" title="Member Function time_since_epoch() const">Member 1902 Function <code class="computeroutput"><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="keyword">const</span></code></a> 1903</h6></div></div></div> 1904<pre class="programlisting"><span class="keyword">constexpr</span> <span class="identifier">duration</span> <span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 1905</pre> 1906<p> 1907 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">d_</span></code>. 1908 </p> 1909</div> 1910<div class="section"> 1911<div class="titlepage"><div><div><h6 class="title"> 1912<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_plus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_plus" title="Member Function operator+() const">Member 1913 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+()</span> 1914 <span class="keyword">const</span></code></a> 1915</h6></div></div></div> 1916<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">+()</span> <span class="keyword">const</span><span class="special">;</span> 1917</pre> 1918<p> 1919 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 1920 </p> 1921</div> 1922<div class="section"> 1923<div class="titlepage"><div><div><h6 class="title"> 1924<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_minus"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_unary_minus" title="Member Function operator-() const">Member 1925 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-()</span> 1926 <span class="keyword">const</span></code></a> 1927</h6></div></div></div> 1928<pre class="programlisting"><span class="keyword">constexpr</span> <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">-()</span> <span class="keyword">const</span><span class="special">;</span> 1929</pre> 1930<p> 1931 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(-</span><span class="identifier">d_</span><span class="special">)</span></code>. 1932 </p> 1933</div> 1934<div class="section"> 1935<div class="titlepage"><div><div><h6 class="title"> 1936<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_inc" title="Member Function operator++()">Member 1937 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++()</span></code></a> 1938</h6></div></div></div> 1939<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span> 1940</pre> 1941<p> 1942 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">++</span><span class="identifier">d_</span></code>. 1943 </p> 1944<p> 1945 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 1946 </p> 1947</div> 1948<div class="section"> 1949<div class="titlepage"><div><div><h6 class="title"> 1950<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_post_inc"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_post_inc" title="Member Function operator++(int)">Member 1951 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span></code></a> 1952</h6></div></div></div> 1953<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span> 1954</pre> 1955<p> 1956 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(</span><span class="identifier">d_</span><span class="special">++)</span></code>. 1957 </p> 1958</div> 1959<div class="section"> 1960<div class="titlepage"><div><div><h6 class="title"> 1961<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_pre_dec" title="Member Function operator--()">Member 1962 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--()</span></code></a> 1963</h6></div></div></div> 1964<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span> 1965</pre> 1966<p> 1967 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="special">--</span><span class="identifier">d_</span></code>. 1968 </p> 1969<p> 1970 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 1971 </p> 1972</div> 1973<div class="section"> 1974<div class="titlepage"><div><div><h6 class="title"> 1975<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_post_dec"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_post_dec" title="Member Function operator--(int)">Member 1976 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span></code></a> 1977</h6></div></div></div> 1978<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span> 1979</pre> 1980<p> 1981 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a><span class="special">(</span><span class="identifier">d_</span><span class="special">--)</span></code>. 1982 </p> 1983</div> 1984<div class="section"> 1985<div class="titlepage"><div><div><h6 class="title"> 1986<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_1" title="Member Function operator+=(const rep&)">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> 1990</pre> 1991<p> 1992 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span> 1993 <span class="special">+=</span> <span class="identifier">duration</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>. 1994 </p> 1995<p> 1996 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 1997 </p> 1998</div> 1999<div class="section"> 2000<div class="titlepage"><div><div><h6 class="title"> 2001<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_1" title="Member Function operator-=(const rep&)">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> 2005</pre> 2006<p> 2007 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span> 2008 <span class="special">-=</span> <span class="identifier">duration</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code> 2009 </p> 2010<p> 2011 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 2012 </p> 2013</div> 2014<div class="section"> 2015<div class="titlepage"><div><div><h6 class="title"> 2016<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_plus_eq_2" title="Member Function operator+=">Member 2017 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code></a> 2018</h6></div></div></div> 2019<pre class="programlisting"><span class="identifier">time_point</span><span class="special">&</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> 2020</pre> 2021<p> 2022 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span> 2023 <span class="special">+=</span> <span class="identifier">d</span></code>. 2024 </p> 2025<p> 2026 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 2027 </p> 2028</div> 2029<div class="section"> 2030<div class="titlepage"><div><div><h6 class="title"> 2031<a name="chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.op_minus_eq_2" title="Member Function operator-=">Member 2032 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code></a> 2033</h6></div></div></div> 2034<pre class="programlisting"><span class="identifier">time_point</span><span class="special">&</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> 2035</pre> 2036<p> 2037 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">d_</span> 2038 <span class="special">-=</span> <span class="identifier">d</span></code> 2039 </p> 2040<p> 2041 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 2042 </p> 2043</div> 2044<div class="section"> 2045<div class="titlepage"><div><div><h6 class="title"> 2046<a name="chrono.reference.cpp0x.time_point_hpp.time_point.min"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.min" title="Static Member Function min">Static 2047 Member Function <code class="computeroutput"><span class="identifier">min</span></code></a> 2048</h6></div></div></div> 2049<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <span class="identifier">min</span><span class="special">();</span> 2050</pre> 2051<p> 2052 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">time_point</span><span class="special">(</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">min</span><span class="special">())</span></code>. 2053 </p> 2054</div> 2055<div class="section"> 2056<div class="titlepage"><div><div><h6 class="title"> 2057<a name="chrono.reference.cpp0x.time_point_hpp.time_point.max"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point.max" title="Static Member Function max">Static 2058 Member Function <code class="computeroutput"><span class="identifier">max</span></code></a> 2059</h6></div></div></div> 2060<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">time_point</span> <span class="identifier">max</span><span class="special">();</span> 2061</pre> 2062<p> 2063 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">time_point</span><span class="special">(</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">max</span><span class="special">())</span></code>. 2064 </p> 2065</div> 2066</div> 2067<div class="section"> 2068<div class="titlepage"><div><div><h5 class="title"> 2069<a name="chrono.reference.cpp0x.time_point_hpp.arith"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith" title="time_point non-member arithmetic"><code class="computeroutput"><span class="identifier">time_point</span></code> non-member arithmetic</a> 2070</h5></div></div></div> 2071<div class="section"> 2072<div class="titlepage"><div><div><h6 class="title"> 2073<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_1" title="Non-Member Function operator+(time_point,duration)">Non-Member 2074 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 2075</h6></div></div></div> 2076<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2081</pre> 2082<p> 2083 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">CT</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">rhs</span><span class="special">)</span></code> 2084 where <code class="computeroutput"><span class="identifier">CT</span></code> is the type 2085 of the return value. 2086 </p> 2087</div> 2088<div class="section"> 2089<div class="titlepage"><div><div><h6 class="title"> 2090<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_plus_2" title="Non-Member Function operator+(duration,time_point)">Non-Member 2091 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">+(</span><span class="identifier">duration</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a> 2092</h6></div></div></div> 2093<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2098</pre> 2099<p> 2100 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">rhs</span> 2101 <span class="special">+</span> <span class="identifier">lhs</span></code>. 2102 </p> 2103</div> 2104<div class="section"> 2105<div class="titlepage"><div><div><h6 class="title"> 2106<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_1"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_1" title="Non-Member Function operator-(time_point,duration)">Non-Member 2107 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">duration</span><span class="special">)</span></code></a> 2108</h6></div></div></div> 2109<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2114</pre> 2115<p> 2116 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">lhs</span> 2117 <span class="special">+</span> <span class="special">(-</span><span class="identifier">rhs</span><span class="special">)</span></code>. 2118 </p> 2119</div> 2120<div class="section"> 2121<div class="titlepage"><div><div><h6 class="title"> 2122<a name="chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_2"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.arith.time_point__op_minus_2" title="Non-Member Function operator-(time_point,time_point)">Non-Member 2123 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">-(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a> 2124</h6></div></div></div> 2125<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2130</pre> 2131<p> 2132 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">rhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span></code>. 2133 </p> 2134</div> 2135</div> 2136<div class="section"> 2137<div class="titlepage"><div><div><h5 class="title"> 2138<a name="chrono.reference.cpp0x.time_point_hpp.cmp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp" title="time_point non-member comparisons"><code class="computeroutput"><span class="identifier">time_point</span></code> non-member comparisons</a> 2139</h5></div></div></div> 2140<div class="section"> 2141<div class="titlepage"><div><div><h6 class="title"> 2142<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_eq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_eq" title="Non-Member Function operator==(time_point,time_point)">Non-Member 2143 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">==(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a> 2144</h6></div></div></div> 2145<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2149</pre> 2150<p> 2151 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span> <span class="special">==</span> <span class="identifier">rhs</span><span class="special">.</span><span class="identifier">time_since_epoch</span><span class="special">()</span></code>. 2152 </p> 2153</div> 2154<div class="section"> 2155<div class="titlepage"><div><div><h6 class="title"> 2156<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_neq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_neq" title="Non-Member Function operator!=(time_point,time_point)">Non-Member 2157 Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">time_point</span><span class="special">,</span><span class="identifier">time_point</span><span class="special">)</span></code></a> 2158</h6></div></div></div> 2159<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2163</pre> 2164<p> 2165 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special">==</span> 2166 <span class="identifier">rhs</span><span class="special">)</span></code>. 2167 </p> 2168</div> 2169<div class="section"> 2170<div class="titlepage"><div><div><h6 class="title"> 2171<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_lt"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_lt" title="Non-Member Function operator<(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> 2178</pre> 2179<p> 2180 <span class="bold"><strong>Returns:</strong></span> lhs.time_since_epoch() < 2181 rhs.time_since_epoch(). 2182 </p> 2183</div> 2184<div class="section"> 2185<div class="titlepage"><div><div><h6 class="title"> 2186<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_leq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_leq" title="Non-Member Function operator<=(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> 2193</pre> 2194<p> 2195 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">rhs</span> <span class="special"><</span> 2196 <span class="identifier">lhs</span><span class="special">)</span></code>. 2197 </p> 2198</div> 2199<div class="section"> 2200<div class="titlepage"><div><div><h6 class="title"> 2201<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_gt"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_gt" title="Non-Member Function operator>(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> 2208</pre> 2209<p> 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>. 2212 </p> 2213</div> 2214<div class="section"> 2215<div class="titlepage"><div><div><h6 class="title"> 2216<a name="chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_geq"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.cmp.time_point__op_geq" title="Non-Member Function operator>=(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> 2223</pre> 2224<p> 2225 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> <span class="special"><</span> 2226 <span class="identifier">rhs</span><span class="special">)</span></code>. 2227 </p> 2228</div> 2229</div> 2230<div class="section"> 2231<div class="titlepage"><div><div><h5 class="title"> 2232<a name="chrono.reference.cpp0x.time_point_hpp.time_point_cast"></a><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point_cast" title="Non-Member Function time_point_cast(time_point)">Non-Member 2233 Function <code class="computeroutput"><span class="identifier">time_point_cast</span><span class="special">(</span><span class="identifier">time_point</span><span class="special">)</span></code></a> 2234</h5></div></div></div> 2235<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2238</pre> 2239<p> 2240 <span class="bold"><strong>Requires:</strong></span> This function will not participate 2241 in overload resolution unless <code class="computeroutput"><span class="identifier">ToDuration</span></code> 2242 is an instantiation of <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a>. 2243 </p> 2244<p> 2245 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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>. 2246 </p> 2247</div> 2248</div> 2249<div class="section"> 2250<div class="titlepage"><div><div><h4 class="title"> 2251<a name="chrono.reference.cpp0x.system_clocks_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp" title="Header <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> 2266</dl></div> 2267<p> 2268 This file contains the standard clock classes. The types defined in this 2269 section satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">TrivialClock</span></code></a> requirements 2270 </p> 2271<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2272 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 2273 2274 <span class="comment">// Clocks</span> 2275 <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a><span class="special">;</span> 2276 <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a><span class="special">;</span> 2277 <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a><span class="special">;</span> 2278 2279 <span class="keyword">template</span> <span class="special"><</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> 2283 2284 <span class="special">}</span> 2285<span class="special">}</span> 2286</pre> 2287<div class="section"> 2288<div class="titlepage"><div><div><h5 class="title"> 2289<a name="chrono.reference.cpp0x.system_clocks_hpp.system_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock">Class 2290 <code class="computeroutput"><span class="identifier">system_clock</span></code></a> 2291</h5></div></div></div> 2292<p> 2293 The <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> class provides 2294 a means of obtaining the current wall-clock time from the system-wide 2295 real-time clock. The current time can be obtained by calling <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. 2296 Instances of <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">time_point</span></code> 2297 can be converted to and from time_t with the <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">to_time_t</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">from_time_t</span><span class="special">()</span></code> functions. If system clock is not steady, 2298 a subsequent call to <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> may return an earlier time than a previous 2299 call (e.g. if the operating system clock is manually adjusted, or synchronized 2300 with an external clock). 2301 </p> 2302<p> 2303 The current implementation of <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> is related an epoch 2304 (midnight UTC of January 1, 1970), but this is not in the contract. You 2305 need to use the static function static 2306 </p> 2307<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span> <span class="identifier">to_time_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span> 2308</pre> 2309<p> 2310 which returns a <code class="computeroutput"><span class="identifier">time_t</span></code> 2311 type that is based on midnight UTC of January 1, 1970. 2312 </p> 2313<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">system_clock</span> <span class="special">{</span> 2314<span class="keyword">public</span><span class="special">:</span> 2315 <span class="keyword">typedef</span> <span class="emphasis"><em>see bellow</em></span> <span class="identifier">duration</span><span class="special">;</span> 2316 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span> 2317 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span> 2318 <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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> 2320 2321 2322 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span> 2323 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <span class="identifier">ec</span><span class="special">);</span> 2324 2325 <span class="comment">// Map to C API</span> 2326 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span> <span class="identifier">to_time_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 2327 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">from_time_t</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 2328<span class="special">};</span> 2329</pre> 2330<p> 2331 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> 2332 requirements: 2333 </p> 2334<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 2335<li class="listitem"> 2336 <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">min</span><span class="special">()</span> 2337 <span class="special"><</span> <span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">duration</span><span class="special">::</span><span class="identifier">zero</span><span class="special">()</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>. 2338 </li> 2339<li class="listitem"> 2340 The nested <code class="computeroutput"><span class="identifier">duration</span></code> 2341 typedef has a resolution that depends on the one provided by the 2342 platform. 2343 </li> 2344</ul></div> 2345<div class="section"> 2346<div class="titlepage"><div><div><h6 class="title"> 2347<a name="chrono.reference.cpp0x.system_clocks_hpp.system_clock.to_time_t"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock.to_time_t" title="Static Member Function to_time_t(time_point)">Static 2348 Member Function <code class="computeroutput"><span class="identifier">to_time_t</span><span class="special">(</span><span class="identifier">time_point</span><span class="special">)</span></code></a> 2349</h6></div></div></div> 2350<pre class="programlisting"><span class="identifier">time_t</span> <span class="identifier">to_time_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">time_point</span><span class="special">&</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 2351</pre> 2352<p> 2353 <span class="bold"><strong>Returns:</strong></span> A <code class="computeroutput"><span class="identifier">time_t</span></code> 2354 such that the <code class="computeroutput"><span class="identifier">time_t</span></code> 2355 and <code class="computeroutput"><span class="identifier">t</span></code> represent the 2356 same point in time, truncated to the coarser of the precisions among 2357 <code class="computeroutput"><span class="identifier">time_t</span></code> and <code class="computeroutput"><span class="identifier">time_point</span></code>. 2358 </p> 2359</div> 2360<div class="section"> 2361<div class="titlepage"><div><div><h6 class="title"> 2362<a name="chrono.reference.cpp0x.system_clocks_hpp.system_clock.from_time_t"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock.from_time_t" title="Static Member Function from_time_t(time_t)">Static 2363 Member Function <code class="computeroutput"><span class="identifier">from_time_t</span><span class="special">(</span><span class="identifier">time_t</span><span class="special">)</span></code></a> 2364</h6></div></div></div> 2365<pre class="programlisting"><span class="identifier">time_point</span> <span class="identifier">from_time_t</span><span class="special">(</span><span class="identifier">time_t</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 2366</pre> 2367<p> 2368 <span class="bold"><strong>Returns:</strong></span> A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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>. 2371 </p> 2372</div> 2373</div> 2374<div class="section"> 2375<div class="titlepage"><div><div><h5 class="title"> 2376<a name="chrono.reference.cpp0x.system_clocks_hpp.BOOST_CHRONO_HAS_CLOCK_STEADY"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.BOOST_CHRONO_HAS_CLOCK_STEADY" title="Macro BOOST_CHRONO_HAS_CLOCK_STEADY">Macro 2377 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span></code></a> 2378</h5></div></div></div> 2379<p> 2380 Defined if the platform support steady clocks. 2381 </p> 2382</div> 2383<div class="section"> 2384<div class="titlepage"><div><div><h5 class="title"> 2385<a name="chrono.reference.cpp0x.system_clocks_hpp.steady_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock">Class 2386 <code class="computeroutput"><span class="identifier">steady_clock</span></code></a> 2387</h5></div></div></div> 2388<p> 2389 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> 2390 requirements. 2391 </p> 2392<p> 2393 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> class provides 2394 access to the system-wide steady clock. The current time can be obtained 2395 by calling <code class="computeroutput"><span class="identifier">steady_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. There is no fixed relationship between 2396 values returned by <code class="computeroutput"><span class="identifier">steady_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> and wall-clock time. 2397 </p> 2398<pre class="programlisting"><span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_HAS_CLOCK_STEADY</span> 2399 <span class="keyword">class</span> <span class="identifier">steady_clock</span> <span class="special">{</span> 2400 <span class="keyword">public</span><span class="special">:</span> 2401 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a> <span class="identifier">duration</span><span class="special">;</span> 2402 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span> 2403 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span> 2404 <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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> 2406 2407 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span> 2408 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <span class="identifier">ec</span><span class="special">);</span> 2409 <span class="special">};</span> 2410<span class="preprocessor">#endif</span> 2411</pre> 2412</div> 2413<div class="section"> 2414<div class="titlepage"><div><div><h5 class="title"> 2415<a name="chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock">Class 2416 <code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a> 2417</h5></div></div></div> 2418<p> 2419 <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.high_resolution_clock" title="Class high_resolution_clock"><code class="computeroutput"><span class="identifier">high_resolution_clock</span></code></a> satisfy 2420 the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> 2421 requirements. 2422 </p> 2423<pre class="programlisting"><span class="preprocessor">#ifdef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.BOOST_CHRONO_HAS_CLOCK_STEADY" title="Macro BOOST_CHRONO_HAS_CLOCK_STEADY"><code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span></code></a> 2424 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a> <span class="identifier">high_resolution_clock</span><span class="special">;</span> <span class="comment">// as permitted by [time.clock.hires]</span> 2425<span class="preprocessor">#else</span> 2426 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> <span class="identifier">high_resolution_clock</span><span class="special">;</span> <span class="comment">// as permitted by [time.clock.hires]</span> 2427<span class="preprocessor">#endif</span> 2428</pre> 2429</div> 2430<div class="section"> 2431<div class="titlepage"><div><div><h5 class="title"> 2432<a name="chrono.reference.cpp0x.system_clocks_hpp.clock_string_system_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.clock_string_system_clock" title="clock_string<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> 2433 Specialization</a> 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> 2441</pre> 2442<p> 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". 2445 </p> 2446<p> 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" 2449 </p> 2450</div> 2451<div class="section"> 2452<div class="titlepage"><div><div><h5 class="title"> 2453<a name="chrono.reference.cpp0x.system_clocks_hpp.clock_string_steady_clock"></a><a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.clock_string_steady_clock" title="clock_string<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> 2454 Specialization</a> 2455</h5></div></div></div> 2456<pre class="programlisting"><span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_CHRONO_HAS_CLOCK_STEADY</span> 2457 2458<span class="keyword">template</span> <span class="special"><</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> 2465</pre> 2466<p> 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". 2469 </p> 2470<p> 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" 2473 </p> 2474</div> 2475</div> 2476<div class="section"> 2477<div class="titlepage"><div><div><h4 class="title"> 2478<a name="chrono.reference.cpp0x.clock_strings_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.clock_strings_hpp" title="Header <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> 2484 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> 2487 2488 <span class="special">}</span> 2489<span class="special">}</span> 2490</pre> 2491<div class="section"> 2492<div class="titlepage"><div><div><h5 class="title"> 2493<a name="chrono.reference.cpp0x.clock_strings_hpp.clock_string"></a><a class="link" href="reference.html#chrono.reference.cpp0x.clock_strings_hpp.clock_string" title="Template Class clock_string<>">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> 2498</pre> 2499<p> 2500 This template must be specialized for specific clocks. The specialization 2501 must define the following functions 2502 </p> 2503<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</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> 2505</pre> 2506<p> 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. 2509 </p> 2510<p> 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. 2513 </p> 2514</div> 2515</div> 2516<div class="section"> 2517<div class="titlepage"><div><div><h4 class="title"> 2518<a name="chrono.reference.cpp0x.chrono_typeof_hpp"></a><a class="link" href="reference.html#chrono.reference.cpp0x.chrono_typeof_hpp" title="Header <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> 2520<p> 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>. 2524 </p> 2525</div> 2526</div> 2527<div class="section"> 2528<div class="titlepage"><div><div><h3 class="title"> 2529<a name="chrono.reference.io_v1"></a><a class="link" href="reference.html#chrono.reference.io_v1" title="Chrono I/O V1">Chrono I/O V1</a> 2530</h3></div></div></div> 2531<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#chrono.reference.io_v1.chrono_io_hpp">Header <code class="computeroutput"><span class="special"><</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> 2543</dl></div> 2544<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2545<span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 2546 2547 <span class="keyword">template</span> <span class="special"><</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> 2549 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> 2553 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> 2557 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> 2561 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> 2565 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> 2570 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> 2575 2576<span class="special">}</span> 2577<span class="special">}</span> 2578</pre> 2579<div class="section"> 2580<div class="titlepage"><div><div><h5 class="title"> 2581<a name="chrono.reference.io_v1.chrono_io_hpp.duration_punct"></a><a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct<>">Template 2582 Class <code class="computeroutput"><span class="identifier">duration_punct</span><span class="special"><></span></code></a> 2583</h5></div></div></div> 2584<p> 2585 The <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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). 2592 </p> 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> 2600 2601 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> 2602 2603 <span class="keyword">explicit</span> <span class="identifier">duration_punct</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">use</span> <span class="special">=</span> <span class="identifier">use_long</span><span class="special">);</span> 2604 2605 <span class="identifier">duration_punct</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">use</span><span class="special">,</span> 2606 <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&</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> 2609 2610 <span class="identifier">duration_punct</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">use</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">duration_punct</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span> 2611 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> 2615 2616 <span class="keyword">bool</span> <span class="identifier">is_short_name</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 2617 <span class="keyword">bool</span> <span class="identifier">is_long_name</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 2618<span class="special">};</span> 2619</pre> 2620</div> 2621<div class="section"> 2622<div class="titlepage"><div><div><h5 class="title"> 2623<a name="chrono.reference.io_v1.chrono_io_hpp.manipulators"></a><a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.manipulators" title="I/O Manipulators">I/O 2624 Manipulators</a> 2625</h5></div></div></div> 2626<p> 2627 The short or long format can be easily chosen by streaming a <code class="computeroutput"><span class="identifier">duration_short</span></code> or <code class="computeroutput"><span class="identifier">duration_long</span></code> 2628 manipulator respectively. 2629 </p> 2630<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2633</pre> 2634<p> 2635 <span class="bold"><strong>Effects:</strong></span> Set the <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct<>"><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. 2637 </p> 2638<p> 2639 <span class="bold"><strong>Returns:</strong></span> the output stream 2640 </p> 2641<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2644</pre> 2645<p> 2646 <span class="bold"><strong>Effects:</strong></span> Set the <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.duration_punct" title="Template Class duration_punct<>"><code class="computeroutput"><span class="identifier">duration_punct</span></code></a> facet to stream 2647 durations and time_points as long text. 2648 </p> 2649<p> 2650 <span class="bold"><strong>Returns:</strong></span> the output stream 2651 </p> 2652</div> 2653<div class="section"> 2654<div class="titlepage"><div><div><h5 class="title"> 2655<a name="chrono.reference.io_v1.chrono_io_hpp.streams"></a><a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.streams" title="I/O Streams Operations">I/O 2656 Streams Operations</a> 2657</h5></div></div></div> 2658<p> 2659 Any <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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. 2669 </p> 2670<p> 2671 A <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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 2675 clocks. 2676 </p> 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> 2680</pre> 2681<p> 2682 <span class="bold"><strong>Effects:</strong></span> outputs the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><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. 2684 </p> 2685<p> 2686 <span class="bold"><strong>Returns:</strong></span> the output stream 2687 </p> 2688<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2691</pre> 2692<p> 2693 <span class="bold"><strong>Effects:</strong></span> reads a <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> from the input stream. 2694 If a format error is found, the input stream state will be set to <code class="computeroutput"><span class="identifier">failbit</span></code>. 2695 </p> 2696<p> 2697 <span class="bold"><strong>Returns:</strong></span> the input stream 2698 </p> 2699<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2703</pre> 2704<p> 2705 <span class="bold"><strong>Effects:</strong></span> outputs the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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. 2707 </p> 2708<p> 2709 <span class="bold"><strong>Returns:</strong></span> the output stream 2710 </p> 2711<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 2715</pre> 2716<p> 2717 <span class="bold"><strong>Effects:</strong></span> reads a <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> from the input stream. 2718 If a format error is found, the input stream state will be set to <code class="computeroutput"><span class="identifier">failbit</span></code>. 2719 </p> 2720<p> 2721 <span class="bold"><strong>Returns:</strong></span> the input stream 2722 </p> 2723</div> 2724</div> 2725</div> 2726<div class="section"> 2727<div class="titlepage"><div><div><h3 class="title"> 2728<a name="chrono.reference.io"></a><a class="link" href="reference.html#chrono.reference.io" title="Chrono I/O V2">Chrono I/O V2</a> 2729</h3></div></div></div> 2730<div class="toc"><dl class="toc"> 2731<dt><span class="section"><a href="reference.html#chrono.reference.io.chrono_io_hpp">Header <code class="computeroutput"><span class="special"><</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> 2743</dl></div> 2744<div class="section"> 2745<div class="titlepage"><div><div><h4 class="title"> 2746<a name="chrono.reference.io.chrono_io_hpp"></a><a class="link" href="reference.html#chrono.reference.io.chrono_io_hpp" title="Header <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> 2748<p> 2749 This file includes the i/o of the two major components, duration and time_point. 2750 </p> 2751<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</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> 2762</pre> 2763</div> 2764<div class="section"> 2765<div class="titlepage"><div><div><h4 class="title"> 2766<a name="chrono.reference.io.duration_style_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp" title="Header <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> 2772 2773 <span class="comment">// typedefs</span> 2774 <span class="keyword">enum</span> <span class="keyword">class</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <span class="special">{</span> 2775 <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">prefix</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">symbol</span></code></a> 2776 <span class="special">};</span> 2777 <span class="special">}</span> 2778<span class="special">}</span> 2779</pre> 2780<div class="section"> 2781<div class="titlepage"><div><div><h5 class="title"> 2782<a name="chrono.reference.io.duration_style_hpp.duration_style"></a><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style">Scoped 2783 enum <code class="computeroutput"><span class="identifier">duration_style</span></code></a> 2784</h5></div></div></div> 2785<pre class="programlisting"><span class="keyword">enum</span> <span class="keyword">class</span> <span class="identifier">duration_style</span> <span class="special">{</span> 2786 <span class="identifier">prefix</span><span class="special">,</span> <span class="identifier">symbol</span> 2787<span class="special">};</span> 2788</pre> 2789<p> 2790 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> unit names come in 2791 two varieties: prefix and symbol. 2792 </p> 2793</div> 2794</div> 2795<div class="section"> 2796<div class="titlepage"><div><div><h4 class="title"> 2797<a name="chrono.reference.io.timezone_hpp"></a><a class="link" href="reference.html#chrono.reference.io.timezone_hpp" title="Header <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> 2803 2804 <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> 2805 <span class="special">{</span> 2806 <span class="keyword">enum</span> <span class="identifier">type</span> <span class="special">{</span> 2807 <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">utc</span></code></a><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">local</span></code></a> 2808 <span class="special">};</span> 2809 <span class="special">};</span> 2810 <span class="special">}</span> 2811<span class="special">}</span> 2812</pre> 2813<div class="section"> 2814<div class="titlepage"><div><div><h5 class="title"> 2815<a name="chrono.reference.io.timezone_hpp.timezone"></a><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone">Scoped 2816 enum <code class="computeroutput"><span class="identifier">timezone</span></code></a> 2817</h5></div></div></div> 2818<pre class="programlisting"><span class="keyword">enum</span> <span class="keyword">class</span> <span class="identifier">timezone</span> <span class="special">{</span> 2819 <span class="identifier">utc</span><span class="special">,</span> <span class="identifier">local</span> 2820<span class="special">};</span> 2821</pre> 2822</div> 2823</div> 2824<div class="section"> 2825<div class="titlepage"><div><div><h4 class="title"> 2826<a name="chrono.reference.io.ios_state_hpp"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp" title="Header <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> 2833</dl></div> 2834<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2835 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 2836 2837 <span class="comment">// setters and getters</span> 2838 <span class="identifier">duration_style</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_duration_style" title="Non Member Function get_duration_style(std::ios_base &)"><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> 2840 2841 <span class="identifier">timezone</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_timezone" title="Non Member Function get_timezone(std::ios_base&)"><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> 2843 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> 2848 2849 <span class="comment">// i/o state savers</span> 2850 <span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a><span class="special">;</span> 2851 <span class="keyword">template</span><span class="special"><</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> 2857</pre> 2858<div class="section"> 2859<div class="titlepage"><div><div><h5 class="title"> 2860<a name="chrono.reference.io.ios_state_hpp.sag"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag" title="Setter and getters">Setter and 2861 getters</a> 2862</h5></div></div></div> 2863<div class="section"> 2864<div class="titlepage"><div><div><h6 class="title"> 2865<a name="chrono.reference.io.ios_state_hpp.sag.get_duration_style"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_duration_style" title="Non Member Function get_duration_style(std::ios_base &)">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> 2870</pre> 2871<p> 2872 <span class="bold"><strong>Returns:</strong></span> The stream's <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> attribute associated 2873 to <code class="computeroutput"><span class="identifier">ios</span></code>. 2874 </p> 2875</div> 2876<div class="section"> 2877<div class="titlepage"><div><div><h6 class="title"> 2878<a name="chrono.reference.io.ios_state_hpp.sag.set_duration_style"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &,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> 2883</pre> 2884<p> 2885 <span class="bold"><strong>Effects:</strong></span> Set the stream's <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> attribute associated 2886 to <code class="computeroutput"><span class="identifier">ios</span></code> with the <code class="computeroutput"><span class="identifier">style</span></code> parameter. 2887 </p> 2888</div> 2889<div class="section"> 2890<div class="titlepage"><div><div><h6 class="title"> 2891<a name="chrono.reference.io.ios_state_hpp.sag.get_timezone"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_timezone" title="Non Member Function get_timezone(std::ios_base&)">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> 2895</pre> 2896<p> 2897 <span class="bold"><strong>Returns:</strong></span> The stream's <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> attribute associated 2898 to <code class="computeroutput"><span class="identifier">ios</span></code>. 2899 </p> 2900</div> 2901<div class="section"> 2902<div class="titlepage"><div><div><h6 class="title"> 2903<a name="chrono.reference.io.ios_state_hpp.sag.set_timezone"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_timezone" title="Non Member Function set_timezone(std::ios_base&,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> 2907</pre> 2908<p> 2909 <span class="bold"><strong>Effects:</strong></span> Set the stream's <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> attribute associated 2910 to <code class="computeroutput"><span class="identifier">ios</span></code> with the <code class="computeroutput"><span class="identifier">tz</span></code> parameter. 2911 </p> 2912</div> 2913<div class="section"> 2914<div class="titlepage"><div><div><h6 class="title"> 2915<a name="chrono.reference.io.ios_state_hpp.sag.get_time_fmt"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_time_fmt" title="Non Member Function get_time_fmt(std::ios_base &)">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> 2921</pre> 2922<p> 2923 <span class="bold"><strong>Returns:</strong></span> The stream's time format 2924 attribute associated to <code class="computeroutput"><span class="identifier">ios</span></code>. 2925 </p> 2926</div> 2927<div class="section"> 2928<div class="titlepage"><div><div><h6 class="title"> 2929<a name="chrono.reference.io.ios_state_hpp.sag.set_time_fmt"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_time_fmt" title="Non Member Function set_time_fmt(std::ios_base&, 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> 2934</pre> 2935<p> 2936 <span class="bold"><strong>Effects:</strong></span> Set the stream's time format 2937 attribute associated to <code class="computeroutput"><span class="identifier">ios</span></code> 2938 with the <code class="computeroutput"><span class="identifier">fmt</span></code> parameter. 2939 </p> 2940<p> 2941 The format is composed of zero or more directives. Each directive is 2942 composed of one of the following: 2943 </p> 2944<pre class="programlisting"><span class="special">*</span> <span class="identifier">one</span> <span class="keyword">or</span> <span class="identifier">more</span> <span class="identifier">white</span><span class="special">-</span><span class="identifier">space</span> <span class="identifier">characters</span> <span class="special">(</span><span class="identifier">as</span> <span class="identifier">specified</span> <span class="identifier">by</span> <span class="identifier">isspace</span><span class="special">());</span> 2945<span class="special">*</span> <span class="identifier">an</span> <span class="identifier">ordinary</span> <span class="identifier">character</span> <span class="special">(</span><span class="identifier">neither</span> <span class="char">'%'</span> <span class="identifier">nor</span> <span class="identifier">a</span> <span class="identifier">white</span><span class="special">-</span><span class="identifier">space</span> <span class="identifier">character</span><span class="special">);</span> 2946<span class="special">*</span> <span class="keyword">or</span> <span class="identifier">a</span> <span class="identifier">conversion</span> <span class="identifier">specification</span><span class="special">.</span> 2947</pre> 2948<p> 2949 Each conversion specification is composed of a '%' character followed 2950 by a conversion character which specifies the replacement required. 2951 The application shall ensure that there is white-space or other non-alphanumeric 2952 characters between any two conversion specifications. The following 2953 conversion specifications are supported: 2954 </p> 2955<div class="table"> 2956<a name="chrono.reference.io.ios_state_hpp.sag.set_time_fmt.format_tags"></a><p class="title"><b>Table 7.3. Format tags</b></p> 2957<div class="table-contents"><table class="table" summary="Format tags"> 2958<colgroup> 2959<col> 2960<col> 2961<col> 2962</colgroup> 2963<thead><tr> 2964<th> 2965 <p> 2966 Format Specifier 2967 </p> 2968 </th> 2969<th> 2970 <p> 2971 Description 2972 </p> 2973 </th> 2974<th> 2975 <p> 2976 Example 2977 </p> 2978 </th> 2979</tr></thead> 2980<tbody> 2981<tr> 2982<td> 2983 <p> 2984 <code class="computeroutput"><span class="special">%%</span></code> 2985 </p> 2986 </td> 2987<td> 2988 <p> 2989 Replaced by <code class="computeroutput"><span class="special">%</span></code>. 2990 </p> 2991 </td> 2992<td> 2993 <p> 2994 . 2995 </p> 2996 </td> 2997</tr> 2998<tr> 2999<td> 3000 <p> 3001 <code class="computeroutput"><span class="special">%</span><span class="identifier">a</span> 3002 <span class="special">%</span><span class="identifier">A</span></code> 3003 </p> 3004 </td> 3005<td> 3006 <p> 3007 The day of the week, using the locale's weekday names; either 3008 the abbreviated or full name may be specified. 3009 </p> 3010 </td> 3011<td> 3012 <p> 3013 "Monday". 3014 </p> 3015 </td> 3016</tr> 3017<tr> 3018<td> 3019 <p> 3020 <code class="computeroutput"><span class="special">%</span><span class="identifier">b</span> 3021 <span class="special">%</span><span class="identifier">B</span> 3022 <span class="special">%</span><span class="identifier">h</span></code> 3023 </p> 3024 </td> 3025<td> 3026 <p> 3027 The month, using the locale's month names; either the abbreviated 3028 or full name may be specified. 3029 </p> 3030 </td> 3031<td> 3032 <p> 3033 "February". 3034 </p> 3035 </td> 3036</tr> 3037<tr> 3038<td> 3039 <p> 3040 <code class="computeroutput"><span class="special">%</span><span class="identifier">c</span></code> 3041 </p> 3042 </td> 3043<td> 3044 <p> 3045 Not supported. 3046 </p> 3047 </td> 3048<td> 3049 <p> 3050 . 3051 </p> 3052 </td> 3053</tr> 3054<tr> 3055<td> 3056 <p> 3057 <code class="computeroutput"><span class="special">%</span><span class="identifier">d</span> 3058 <span class="special">%</span><span class="identifier">e</span></code> 3059 </p> 3060 </td> 3061<td> 3062 <p> 3063 The day of the month <code class="computeroutput"><span class="special">[</span><span class="number">01</span><span class="special">,</span><span class="number">31</span><span class="special">]</span></code>; 3064 leading zeros are permitted but not required.. 3065 </p> 3066 </td> 3067<td> 3068 <p> 3069 . 3070 </p> 3071 </td> 3072</tr> 3073<tr> 3074<td> 3075 <p> 3076 <code class="computeroutput"><span class="special">%</span><span class="identifier">D</span></code> 3077 </p> 3078 </td> 3079<td> 3080 <p> 3081 The date as <code class="computeroutput"><span class="special">%</span><span class="identifier">m</span><span class="special">/%</span><span class="identifier">d</span><span class="special">/%</span><span class="identifier">y</span></code>. 3082 </p> 3083 </td> 3084<td> 3085 <p> 3086 . 3087 </p> 3088 </td> 3089</tr> 3090<tr> 3091<td> 3092 <p> 3093 <code class="computeroutput"><span class="special">%</span><span class="identifier">F</span></code> 3094 </p> 3095 </td> 3096<td> 3097 <p> 3098 The date as <code class="computeroutput"><span class="special">%</span><span class="identifier">Y</span><span class="special">/%</span><span class="identifier">m</span><span class="special">/%</span><span class="identifier">d</span></code>. 3099 </p> 3100 </td> 3101<td> 3102 <p> 3103 . 3104 </p> 3105 </td> 3106</tr> 3107<tr> 3108<td> 3109 <p> 3110 <code class="computeroutput"><span class="special">%</span><span class="identifier">H</span></code> 3111 </p> 3112 </td> 3113<td> 3114 <p> 3115 The hour (24-hour clock) <code class="computeroutput"><span class="special">[</span><span class="number">00</span><span class="special">,</span><span class="number">23</span><span class="special">]</span></code>; 3116 leading zeros are permitted but not required. 3117 </p> 3118 </td> 3119<td> 3120 <p> 3121 . 3122 </p> 3123 </td> 3124</tr> 3125<tr> 3126<td> 3127 <p> 3128 <code class="computeroutput"><span class="special">%</span><span class="identifier">I</span></code> 3129 </p> 3130 </td> 3131<td> 3132 <p> 3133 The hour (12-hour clock) <code class="computeroutput"><span class="special">[</span><span class="number">01</span><span class="special">,</span><span class="number">12</span><span class="special">]</span></code>; 3134 leading zeros are permitted but not required. 3135 </p> 3136 </td> 3137<td> 3138 <p> 3139 . 3140 </p> 3141 </td> 3142</tr> 3143<tr> 3144<td> 3145 <p> 3146 <code class="computeroutput"><span class="special">%</span><span class="identifier">j</span></code> 3147 </p> 3148 </td> 3149<td> 3150 <p> 3151 The day number of the year <code class="computeroutput"><span class="special">[</span><span class="number">001</span><span class="special">,</span><span class="number">366</span><span class="special">]</span></code>; 3152 leading zeros are permitted but not required. 3153 </p> 3154 </td> 3155<td> 3156 <p> 3157 "060" => Feb-29. 3158 </p> 3159 </td> 3160</tr> 3161<tr> 3162<td> 3163 <p> 3164 <code class="computeroutput"><span class="special">%</span><span class="identifier">m</span></code> 3165 </p> 3166 </td> 3167<td> 3168 <p> 3169 The month number <code class="computeroutput"><span class="special">[</span><span class="number">01</span><span class="special">,</span><span class="number">12</span><span class="special">]</span></code>; 3170 leading zeros are permitted but not required.. 3171 </p> 3172 </td> 3173<td> 3174 <p> 3175 "01" => January. 3176 </p> 3177 </td> 3178</tr> 3179<tr> 3180<td> 3181 <p> 3182 <code class="computeroutput"><span class="special">%</span><span class="identifier">M</span></code> 3183 </p> 3184 </td> 3185<td> 3186 <p> 3187 The minute <code class="computeroutput"><span class="special">[</span><span class="number">00</span><span class="special">,</span><span class="number">59</span><span class="special">]</span></code>; 3188 leading zeros are permitted but not required. 3189 </p> 3190 </td> 3191<td> 3192 <p> 3193 . 3194 </p> 3195 </td> 3196</tr> 3197<tr> 3198<td> 3199 <p> 3200 <code class="computeroutput"><span class="special">%</span><span class="identifier">n</span> 3201 <span class="special">%</span><span class="identifier">t</span></code> 3202 </p> 3203 </td> 3204<td> 3205 <p> 3206 Any white space.. 3207 </p> 3208 </td> 3209<td> 3210 <p> 3211 . 3212 </p> 3213 </td> 3214</tr> 3215<tr> 3216<td> 3217 <p> 3218 <code class="computeroutput"><span class="special">%</span><span class="identifier">p</span></code> 3219 </p> 3220 </td> 3221<td> 3222 <p> 3223 Not supported. 3224 </p> 3225 </td> 3226<td> 3227 <p> 3228 . 3229 </p> 3230 </td> 3231</tr> 3232<tr> 3233<td> 3234 <p> 3235 <code class="computeroutput"><span class="special">%</span><span class="identifier">r</span></code> 3236 </p> 3237 </td> 3238<td> 3239 <p> 3240 Not supported. 3241 </p> 3242 </td> 3243<td> 3244 <p> 3245 . 3246 </p> 3247 </td> 3248</tr> 3249<tr> 3250<td> 3251 <p> 3252 <code class="computeroutput"><span class="special">%</span><span class="identifier">R</span></code> 3253 </p> 3254 </td> 3255<td> 3256 <p> 3257 The time as <code class="computeroutput"><span class="special">%</span><span class="identifier">H</span><span class="special">:%</span><span class="identifier">M</span></code>. 3258 </p> 3259 </td> 3260<td> 3261 <p> 3262 . 3263 </p> 3264 </td> 3265</tr> 3266<tr> 3267<td> 3268 <p> 3269 <code class="computeroutput"><span class="special">%</span><span class="identifier">S</span></code> 3270 </p> 3271 </td> 3272<td> 3273 <p> 3274 The seconds <code class="computeroutput"><span class="special">[</span><span class="number">00</span><span class="special">,</span><span class="number">60</span><span class="special">]</span></code>; 3275 leading zeros are permitted but not required. 3276 </p> 3277 </td> 3278<td> 3279 <p> 3280 . 3281 </p> 3282 </td> 3283</tr> 3284<tr> 3285<td> 3286 <p> 3287 <code class="computeroutput"><span class="special">%</span><span class="identifier">T</span></code> 3288 </p> 3289 </td> 3290<td> 3291 <p> 3292 The time as <code class="computeroutput"><span class="special">%</span><span class="identifier">H</span><span class="special">:%</span><span class="identifier">M</span><span class="special">:%</span><span class="identifier">S</span></code>. 3293 </p> 3294 </td> 3295<td> 3296 <p> 3297 . 3298 </p> 3299 </td> 3300</tr> 3301<tr> 3302<td> 3303 <p> 3304 <code class="computeroutput"><span class="special">%</span><span class="identifier">U</span></code> 3305 </p> 3306 </td> 3307<td> 3308 <p> 3309 Not supported. 3310 </p> 3311 </td> 3312<td> 3313 <p> 3314 . 3315 </p> 3316 </td> 3317</tr> 3318<tr> 3319<td> 3320 <p> 3321 <code class="computeroutput"><span class="special">%</span><span class="identifier">w</span></code> 3322 </p> 3323 </td> 3324<td> 3325 <p> 3326 The weekday as a decimal number <code class="computeroutput"><span class="special">[</span><span class="number">0</span><span class="special">,</span><span class="number">6</span><span class="special">]</span></code>, 3327 with 0 representing Sunday; leading zeros are permitted but 3328 not required.. 3329 </p> 3330 </td> 3331<td> 3332 <p> 3333 "0" => Sunday. 3334 </p> 3335 </td> 3336</tr> 3337<tr> 3338<td> 3339 <p> 3340 <code class="computeroutput"><span class="special">%</span><span class="identifier">W</span></code> 3341 </p> 3342 </td> 3343<td> 3344 <p> 3345 Not supported. 3346 </p> 3347 </td> 3348<td> 3349 <p> 3350 . 3351 </p> 3352 </td> 3353</tr> 3354<tr> 3355<td> 3356 <p> 3357 <code class="computeroutput"><span class="special">%</span><span class="identifier">x</span></code> 3358 </p> 3359 </td> 3360<td> 3361 <p> 3362 The date, using the locale's date format.. 3363 </p> 3364 </td> 3365<td> 3366 <p> 3367 . 3368 </p> 3369 </td> 3370</tr> 3371<tr> 3372<td> 3373 <p> 3374 <code class="computeroutput"><span class="special">%</span><span class="identifier">X</span></code> 3375 </p> 3376 </td> 3377<td> 3378 <p> 3379 Not supported. 3380 </p> 3381 </td> 3382<td> 3383 <p> 3384 . 3385 </p> 3386 </td> 3387</tr> 3388<tr> 3389<td> 3390 <p> 3391 <code class="computeroutput"><span class="special">%</span><span class="identifier">y</span></code> 3392 </p> 3393 </td> 3394<td> 3395 <p> 3396 Not supported. 3397 </p> 3398 </td> 3399<td> 3400 <p> 3401 "2005". 3402 </p> 3403 </td> 3404</tr> 3405<tr> 3406<td> 3407 <p> 3408 <code class="computeroutput"><span class="special">%</span><span class="identifier">Y</span></code> 3409 </p> 3410 </td> 3411<td> 3412 <p> 3413 The year, including the century (for example, 1988). 3414 </p> 3415 </td> 3416<td> 3417 <p> 3418 . 3419 </p> 3420 </td> 3421</tr> 3422</tbody> 3423</table></div> 3424</div> 3425<br class="table-break"> 3426</div> 3427</div> 3428<div class="section"> 3429<div class="titlepage"><div><div><h5 class="title"> 3430<a name="chrono.reference.io.ios_state_hpp.ioss"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss" title="I/O State Savers">I/O State 3431 Savers</a> 3432</h5></div></div></div> 3433<div class="section"> 3434<div class="titlepage"><div><div><h6 class="title"> 3435<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver">Template 3436 Class <code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a> 3437</h6></div></div></div> 3438<pre class="programlisting"><span class="comment">// i/o state savers</span> 3439 3440<span class="keyword">struct</span> <span class="identifier">duration_style_io_saver</span> 3441<span class="special">{</span> 3442 <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span> <span class="identifier">state_type</span><span class="special">;</span> <span class="comment">// the state type is ios_base</span> 3443 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <span class="identifier">aspect_type</span><span class="special">;</span> <span class="comment">// the aspect type is the __duration_style</span> 3444 3445 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c1" title="Constructor duration_style_io_saver(state_type&)"><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> 3450</pre> 3451<p> 3452 The <code class="computeroutput"><span class="identifier">state_type</span></code> is a 3453 version of the IOStreams base class <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span></code>. 3454 </p> 3455<div class="section"> 3456<div class="titlepage"><div><div><h6 class="title"> 3457<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c1"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c1" title="Constructor duration_style_io_saver(state_type&)">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> 3460<p> 3461 This constructor takes a stream object and saves a reference to the 3462 stream and the current value of a particular stream attribute. 3463 </p> 3464<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_style_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">s</span><span class="special">);</span> 3465</pre> 3466<p> 3467 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a> 3468 by storing <code class="computeroutput"><span class="identifier">s</span></code>. 3469 </p> 3470</div> 3471<div class="section"> 3472<div class="titlepage"><div><div><h6 class="title"> 3473<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c2"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.c2" title="Constructor duration_style_io_saver(state_type&, 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> 3476<p> 3477 This constructor works like the previous one, and in addition uses 3478 its second argument to change the stream's attribute to the new 3479 <code class="computeroutput"><span class="identifier">aspect_type</span></code> value 3480 given. 3481 </p> 3482<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_style_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span> 3483</pre> 3484<p> 3485 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver" title="Template Class duration_style_io_saver"><code class="computeroutput"><span class="identifier">duration_style_io_saver</span></code></a> 3486 by storing <code class="computeroutput"><span class="identifier">s</span></code>. Sets 3487 the <code class="computeroutput"><span class="identifier">state_type</span></code> <code class="computeroutput"><span class="identifier">aspect_type</span></code> with the value <code class="computeroutput"><span class="identifier">new_value</span></code>. 3488 </p> 3489</div> 3490<div class="section"> 3491<div class="titlepage"><div><div><h6 class="title"> 3492<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.d"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.d" title="Destructor ~duration_style_io_saver()">Destructor 3493 <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_style_io_saver</span><span class="special">()</span></code></a> 3494</h6></div></div></div> 3495<p> 3496 The destructor restores the stream's attribute to the saved value. 3497 </p> 3498<pre class="programlisting"><span class="special">~</span><span class="identifier">duration_style_io_saver</span><span class="special">();</span> 3499</pre> 3500<p> 3501 <span class="bold"><strong>Effects:</strong></span> As if <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a>(). 3502 </p> 3503</div> 3504<div class="section"> 3505<div class="titlepage"><div><div><h6 class="title"> 3506<a name="chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.restore"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.duration_style_io_saver.restore" title="Member Function restore()">Member 3507 Function <code class="computeroutput"><span class="identifier">restore</span><span class="special">()</span></code></a> 3508</h6></div></div></div> 3509<p> 3510 The restoration can be activated early (and often) with the restore 3511 member function. 3512 </p> 3513<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span> 3514</pre> 3515<p> 3516 <span class="bold"><strong>Effects:</strong></span> Restores the stream's 3517 <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> attribute 3518 to the saved value. 3519 </p> 3520</div> 3521</div> 3522<div class="section"> 3523<div class="titlepage"><div><div><h6 class="title"> 3524<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver<>">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> 3532 3533 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1" title="Constructor timezone_io_saver(state_type&)"><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> 3538</pre> 3539<p> 3540 The <code class="computeroutput"><span class="identifier">state_type</span></code> is a 3541 version of the IOStreams base class template <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special"><</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. 3546 </p> 3547<div class="section"> 3548<div class="titlepage"><div><div><h6 class="title"> 3549<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1" title="Constructor timezone_io_saver(state_type&)">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> 3552<p> 3553 This constructor takes a stream object and saves a reference to the 3554 stream and the current value of a particular stream attribute. 3555 </p> 3556<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">timezone_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">s</span><span class="special">);</span> 3557</pre> 3558<p> 3559 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver<>"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a> by storing 3560 <code class="computeroutput"><span class="identifier">s</span></code>. 3561 </p> 3562</div> 3563<div class="section"> 3564<div class="titlepage"><div><div><h6 class="title"> 3565<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c2"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c2" title="Constructor timezone_io_saver(state_type&, 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> 3569<p> 3570 This constructor works like the previous one, and uses its second 3571 argument to change the stream's attribute to the new aspect_type 3572 value given. 3573 </p> 3574<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">timezone_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span> 3575</pre> 3576<p> 3577 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver" title="Template Class timezone_io_saver<>"><code class="computeroutput"><span class="identifier">timezone_io_saver</span></code></a> by storing 3578 <code class="computeroutput"><span class="identifier">s</span></code>. Sets the <code class="computeroutput"><span class="identifier">state_type</span></code> <code class="computeroutput"><span class="identifier">aspect_type</span></code> 3579 with the value <code class="computeroutput"><span class="identifier">new_value</span></code>. 3580 </p> 3581</div> 3582<div class="section"> 3583<div class="titlepage"><div><div><h6 class="title"> 3584<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.d"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.d" title="Destructor ~timezone_io_saver()">Destructor 3585 <code class="computeroutput"><span class="special">~</span><span class="identifier">timezone_io_saver</span><span class="special">()</span></code></a> 3586</h6></div></div></div> 3587<p> 3588 The destructor restores the stream's attribute to the saved value. 3589 </p> 3590<pre class="programlisting"><span class="special">~</span><span class="identifier">timezone_io_saver</span><span class="special">();</span> 3591</pre> 3592<p> 3593 <span class="bold"><strong>Effects:</strong></span> As if <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a>(). 3594 </p> 3595</div> 3596<div class="section"> 3597<div class="titlepage"><div><div><h6 class="title"> 3598<a name="chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.restore"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.restore" title="Member Function restore()">Member 3599 Function <code class="computeroutput"><span class="identifier">restore</span><span class="special">()</span></code></a> 3600</h6></div></div></div> 3601<p> 3602 The restoration can be activated early (and often) with the restore 3603 member function. 3604 </p> 3605<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span> 3606</pre> 3607<p> 3608 <span class="bold"><strong>Effects:</strong></span> Restores the stream's 3609 <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> attribute to the 3610 saved value. 3611 </p> 3612</div> 3613</div> 3614<div class="section"> 3615<div class="titlepage"><div><div><h6 class="title"> 3616<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver<>">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> 3623 3624 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c1" title="Constructor time_fmt_io_saver(state_type&)"><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> 3629</pre> 3630<p> 3631 The <code class="computeroutput"><span class="identifier">state_type</span></code> is a 3632 version of the IOStreams base class template <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ios</span><span class="special"><</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. 3637 </p> 3638<div class="section"> 3639<div class="titlepage"><div><div><h6 class="title"> 3640<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c1"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c1" title="Constructor time_fmt_io_saver(state_type&)">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> 3643<p> 3644 This constructor takes a stream object and saves a reference to the 3645 stream and the current value of a particular stream attribute. 3646 </p> 3647<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">s</span><span class="special">);</span> 3648</pre> 3649<p> 3650 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver<>"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a> by storing 3651 <code class="computeroutput"><span class="identifier">s</span></code>. 3652 </p> 3653</div> 3654<div class="section"> 3655<div class="titlepage"><div><div><h6 class="title"> 3656<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c2"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.c2" title="Constructor time_fmt_io_saver(state_type&, 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> 3660<p> 3661 This constructor works like the previous one, and uses its second 3662 argument to change the stream's attribute to the new aspect_type 3663 value given. 3664 </p> 3665<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">aspect_type</span> <span class="identifier">new_value</span><span class="special">);</span> 3666</pre> 3667<p> 3668 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver" title="Template Class time_fmt_io_saver<>"><code class="computeroutput"><span class="identifier">time_fmt_io_saver</span></code></a> by storing 3669 <code class="computeroutput"><span class="identifier">s</span></code>. Sets the <code class="computeroutput"><span class="identifier">state_type</span></code> <code class="computeroutput"><span class="identifier">aspect_type</span></code> 3670 with the value <code class="computeroutput"><span class="identifier">new_value</span></code>. 3671 </p> 3672</div> 3673<div class="section"> 3674<div class="titlepage"><div><div><h6 class="title"> 3675<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.d"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.d" title="Destructor ~time_fmt_io_saver()">Destructor 3676 <code class="computeroutput"><span class="special">~</span><span class="identifier">time_fmt_io_saver</span><span class="special">()</span></code></a> 3677</h6></div></div></div> 3678<p> 3679 The destructor restores the stream's attribute to the saved value. 3680 </p> 3681<pre class="programlisting"><span class="special">~</span><span class="identifier">time_fmt_io_saver</span><span class="special">();</span> 3682</pre> 3683<p> 3684 <span class="bold"><strong>Effects:</strong></span> As if <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.restore" title="Member Function restore()"><code class="computeroutput"><span class="identifier">restore</span></code></a>(). 3685 </p> 3686</div> 3687<div class="section"> 3688<div class="titlepage"><div><div><h6 class="title"> 3689<a name="chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.restore"></a><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.time_fmt_io_saver.restore" title="Member Function restore()">Member 3690 Function <code class="computeroutput"><span class="identifier">restore</span><span class="special">()</span></code></a> 3691</h6></div></div></div> 3692<p> 3693 The restoration can be activated early (and often) with the restore 3694 member function. 3695 </p> 3696<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">restore</span><span class="special">();</span> 3697</pre> 3698<p> 3699 <span class="bold"><strong>Effects:</strong></span> Restores the stream's time 3700 format attribute to the saved value. 3701 </p> 3702</div> 3703</div> 3704</div> 3705</div> 3706<div class="section"> 3707<div class="titlepage"><div><div><h4 class="title"> 3708<a name="chrono.reference.io.duration_get_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp" title="Header <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> 3714 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> 3717 3718 <span class="special">}</span> 3719<span class="special">}</span> 3720</pre> 3721<div class="section"> 3722<div class="titlepage"><div><div><h5 class="title"> 3723<a name="chrono.reference.io.duration_get_hpp.duration_get"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get">Template 3724 Class <code class="computeroutput"><span class="identifier">duration_get</span></code></a> 3725</h5></div></div></div> 3726<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 3733 3734 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.c" title="Constructor duration_get(size_t)"><code class="computeroutput"><span class="identifier">duration_get</span></code></a><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 3735 3736 <span class="keyword">template</span> <span class="special"><</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> 3746 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> 3755 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> 3764 3765 <span class="identifier">iter_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get_unit" title="Member Function get_unit(iter_type,iter_type,std::ios_base&,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> 3772 3773 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span> 3774 3775 <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.d" title="Destructor ~duration_get()"><code class="computeroutput"><span class="special">~</span><span class="identifier">duration_get</span></code></a><span class="special">()</span> 3776 <span class="special">{</span> 3777 <span class="special">}</span> 3778 3779<span class="special">};</span> 3780</pre> 3781<p> 3782 The <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet extracts 3783 duration from a character string and stores the resulting value in a 3784 class duration d argument. The facet parses the string using a specific 3785 format as a guide. If the string does not fit the format, then the facet 3786 will indicate an error by setting the err argument to iosbase::failbit. 3787 In other words, user confirmation is required for reliable parsing of 3788 user-entered durations, but machine-generated formats can be parsed reliably. 3789 This allows parsers to be aggressive about interpreting user variations 3790 on standard formats. 3791 </p> 3792<div class="section"> 3793<div class="titlepage"><div><div><h6 class="title"> 3794<a name="chrono.reference.io.duration_get_hpp.duration_get.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.c" title="Constructor duration_get(size_t)">Constructor 3795 <code class="computeroutput"><span class="identifier">duration_get</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a> 3796</h6></div></div></div> 3797<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_get</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span><span class="special">);</span> 3798</pre> 3799<p> 3800 Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet. 3801 </p> 3802<p> 3803 <span class="bold"><strong>Parameters:</strong></span> 3804 </p> 3805<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 3806 <span class="bold"><strong>refs:</strong></span> references 3807 </li></ul></div> 3808<p> 3809 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet. If the 3810 <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated 3811 to the locale, or locales, containing it. This allows the user to ignore 3812 lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code> 3813 is <code class="computeroutput"><span class="number">1</span></code> then the object must 3814 be explicitly deleted; <code class="computeroutput"><span class="identifier">locale</span></code> 3815 will not do so. In this case, the object can be maintained across the 3816 lifetime of multiple locales. 3817 </p> 3818</div> 3819<div class="section"> 3820<div class="titlepage"><div><div><h6 class="title"> 3821<a name="chrono.reference.io.duration_get_hpp.duration_get.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.d" title="Destructor ~duration_get()">Destructor 3822 <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_get</span><span class="special">()</span></code></a> 3823</h6></div></div></div> 3824<pre class="programlisting"><span class="special">~</span><span class="identifier">duration_get</span><span class="special">();</span> 3825</pre> 3826<p> 3827 Destructs a <a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get" title="Template Class duration_get"><code class="computeroutput"><span class="identifier">duration_get</span></code></a> facet. 3828 </p> 3829</div> 3830<div class="section"> 3831<div class="titlepage"><div><div><h6 class="title"> 3832<a name="chrono.reference.io.duration_get_hpp.duration_get.get"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get" title="Template Member Function get(iter_type,iter_type,std::ios_base&,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> 3839</pre> 3840<p> 3841 Extracts a duration from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code> 3842 following the pattern <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code>. 3843 </p> 3844<p> 3845 <span class="bold"><strong>Parameters:</strong></span> 3846 </p> 3847<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 3848<li class="listitem"> 3849 <span class="bold"><strong>s:</strong></span> start input stream iterator 3850 </li> 3851<li class="listitem"> 3852 <span class="bold"><strong>end:</strong></span> end input stream iterator 3853 </li> 3854<li class="listitem"> 3855 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 3856 </li> 3857<li class="listitem"> 3858 <span class="bold"><strong>err:</strong></span> the ios_base state 3859 </li> 3860<li class="listitem"> 3861 <span class="bold"><strong>d:</strong></span> the duration 3862 </li> 3863<li class="listitem"> 3864 <span class="bold"><strong>pattern:</strong></span> begin of the formatting 3865 pattern 3866 </li> 3867<li class="listitem"> 3868 <span class="bold"><strong>pat_end:</strong></span> end of the formatting 3869 pattern 3870 </li> 3871</ul></div> 3872<p> 3873 <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">)</span> <span class="keyword">and</span> <span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span> 3874 <span class="identifier">pat_end</span><span class="special">)</span></code> 3875 shall be valid ranges. 3876 </p> 3877<p> 3878 <span class="bold"><strong>Effects:</strong></span> The function starts by evaluating 3879 <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> 3880 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code>. 3881 </p> 3882<p> 3883 Then it computes an intermediate representation based on <code class="computeroutput"><span class="identifier">Rep</span></code> according to the following rules: 3884 </p> 3885<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 3886<li class="listitem"> 3887 If <code class="computeroutput"><span class="identifier">Rep</span></code> is a floating 3888 point type, the intermediate representation is <code class="computeroutput"><span class="keyword">long</span> 3889 <span class="keyword">double</span></code>. 3890 </li> 3891<li class="listitem"> 3892 Else if <code class="computeroutput"><span class="identifier">Rep</span></code> is 3893 a signed integral type, the intermediate representation is <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>. 3894 </li> 3895<li class="listitem"> 3896 Else if <code class="computeroutput"><span class="identifier">Rep</span></code> is 3897 an unsigned integral type, the intermediate representation is unsigned 3898 long long. 3899 </li> 3900<li class="listitem"> 3901 Else intermediate representation is <code class="computeroutput"><span class="identifier">Rep</span></code>. 3902 </li> 3903</ul></div> 3904<p> 3905 Next the following local variable <code class="computeroutput"><span class="identifier">r</span></code> 3906 of type intermediate representation and <code class="computeroutput"><span class="identifier">rt</span></code> 3907 of type <code class="computeroutput"><span class="identifier">rt_ratio</span></code> are 3908 default constructed. 3909 </p> 3910<p> 3911 It then enters a loop, reading zero or more characters from <code class="computeroutput"><span class="identifier">s</span></code> at each iteration. Unless otherwise 3912 specified below, the loop terminates when the first of the following 3913 conditions holds: 3914 </p> 3915<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 3916<li class="listitem"> 3917 The expression <code class="computeroutput"><span class="identifier">pattern</span> 3918 <span class="special">==</span> <span class="identifier">pat_end</span></code> 3919 evaluates to <code class="computeroutput"><span class="keyword">true</span></code>. 3920 </li> 3921<li class="listitem"> 3922 The expression <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code> 3923 evaluates to false. 3924 </li> 3925<li class="listitem"> 3926 The expression <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span> <span class="identifier">end</span></code> 3927 evaluates to <code class="computeroutput"><span class="keyword">true</span></code>, 3928 in which case the function evaluates <code class="computeroutput"><span class="identifier">err</span> 3929 <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">eofbit</span> 3930 <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. 3931 </li> 3932<li class="listitem"> 3933 The next element of pattern is equal to <code class="computeroutput"><span class="char">'%'</span></code>, 3934 followed by a conversion specifier character, format. If the number 3935 of elements in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code> 3936 is not sufficient to unambiguously determine whether the conversion 3937 specification is complete and valid, the function evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> 3938 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise, the function 3939 evaluates <code class="computeroutput"><span class="identifier">s</span> <span class="special">=</span> 3940 <span class="identifier">get_value</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> 3941 <span class="identifier">end</span><span class="special">,</span> 3942 <span class="identifier">ios</span><span class="special">,</span> 3943 <span class="identifier">err</span><span class="special">,</span> 3944 <span class="identifier">r</span><span class="special">)</span></code> 3945 when the conversion specification is 'v' and <code class="computeroutput"><span class="identifier">s</span> 3946 <span class="special">=</span> <span class="identifier">get_value</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">rt</span><span class="special">)</span></code> when the conversion specification 3947 is 'u'. If <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code> 3948 holds after the evaluation of the expression, the function increments 3949 pattern to point just past the end of the conversion specification 3950 and continues looping. 3951 </li> 3952<li class="listitem"> 3953 The expression <code class="computeroutput"><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> evaluates to <code class="computeroutput"><span class="keyword">true</span></code>, 3954 in which case the function first increments pattern until <code class="computeroutput"><span class="identifier">pattern</span> <span class="special">==</span> 3955 <span class="identifier">pat_end</span> <span class="special">||</span> 3956 <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> evaluates to <code class="computeroutput"><span class="keyword">true</span></code>, 3957 then advances <code class="computeroutput"><span class="identifier">s</span></code> 3958 until <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span> 3959 <span class="identifier">end</span> <span class="special">||</span> 3960 <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>, 3961 and finally resumes looping. 3962 </li> 3963<li class="listitem"> 3964 The next character read from <code class="computeroutput"><span class="identifier">s</span></code> 3965 matches the element pointed to by pattern in a case-insensitive 3966 comparison, in which case the function evaluates <code class="computeroutput"><span class="special">++</span><span class="identifier">pattern</span><span class="special">,</span> <span class="special">++</span><span class="identifier">s</span></code> and continues looping. Otherwise, 3967 the function evaluates <code class="computeroutput"><span class="identifier">err</span> 3968 <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. 3969 </li> 3970</ul></div> 3971<p> 3972 If a duration representation value and a unit specifier have successfully 3973 been parsed, compute <code class="computeroutput"><span class="special">(</span><span class="identifier">rt</span><span class="special">.</span><span class="identifier">num</span><span class="special">/</span><span class="identifier">rt</span><span class="special">.</span><span class="identifier">den</span><span class="special">)/(</span><span class="identifier">Period</span><span class="special">::</span><span class="identifier">num</span><span class="special">/</span><span class="identifier">Period</span><span class="special">::</span><span class="identifier">den</span><span class="special">)</span></code> 3974 reduced to lowest terms. If this ratio can not be stored without overflow, 3975 evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> 3976 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise store the result 3977 of this division in <code class="computeroutput"><span class="identifier">num</span></code> 3978 and <code class="computeroutput"><span class="identifier">den</span></code>. 3979 </p> 3980<p> 3981 If the division did not result in overflow, then compute <code class="computeroutput"><span class="identifier">r</span> <span class="special">*</span> <span class="identifier">num</span> <span class="special">/</span> <span class="identifier">den</span></code> in such a way as to avoid intermediate 3982 overflow. If <code class="computeroutput"><span class="identifier">r</span></code> has 3983 integral type and this computation would not be exact, evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. If the result of the computation 3984 would overflow <code class="computeroutput"><span class="identifier">Rep</span></code>, 3985 evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> 3986 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise the result of 3987 <code class="computeroutput"><span class="identifier">r</span> <span class="special">*</span> 3988 <span class="identifier">num</span> <span class="special">/</span> 3989 <span class="identifier">den</span></code> is used to construct 3990 a <code class="computeroutput"><span class="identifier">duration</span><span class="special"><</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>. 3992 </p> 3993<p> 3994 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>, 3995 an iterator pointing just beyond the last character that can be determined 3996 to be part of a valid duration. 3997 </p> 3998</div> 3999<div class="section"> 4000<div class="titlepage"><div><div><h6 class="title"> 4001<a name="chrono.reference.io.duration_get_hpp.duration_get.get2"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get2" title="Template Member Function get(iter_type,iter_type,std::ios_base&,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> 4013</pre> 4014<p> 4015 Extracts a duration from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code> 4016 following the default pattern. 4017 </p> 4018<p> 4019 <span class="bold"><strong>Parameters:</strong></span> 4020 </p> 4021<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4022<li class="listitem"> 4023 <span class="bold"><strong>s:</strong></span> start input stream iterator 4024 </li> 4025<li class="listitem"> 4026 <span class="bold"><strong>end:</strong></span> end input stream iterator 4027 </li> 4028<li class="listitem"> 4029 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4030 </li> 4031<li class="listitem"> 4032 <span class="bold"><strong>err:</strong></span> the ios_base state 4033 </li> 4034<li class="listitem"> 4035 <span class="bold"><strong>d:</strong></span> the duration 4036 </li> 4037</ul></div> 4038<p> 4039 <span class="bold"><strong>Effects:</strong></span> Stores the duration pattern 4040 from the __duration_unit facet associated to 'ios<code class="computeroutput"> <span class="identifier">in</span> 4041 <span class="identifier">let</span> <span class="identifier">say</span> 4042 </code>str`. Last as if 4043 </p> 4044<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span> 4045</pre> 4046<p> 4047 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>, 4048 an iterator pointing just beyond the last character that can be determined 4049 to be part of a valid duration. 4050 </p> 4051</div> 4052<div class="section"> 4053<div class="titlepage"><div><div><h6 class="title"> 4054<a name="chrono.reference.io.duration_get_hpp.duration_get.get_value"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get_value" title="Template Member Function get_value(iter_type,iter_type,std::ios_base&,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> 4059</pre> 4060<p> 4061 Extracts a duration representation from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code>. 4062 </p> 4063<p> 4064 <span class="bold"><strong>Parameters:</strong></span> 4065 </p> 4066<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4067<li class="listitem"> 4068 <span class="bold"><strong>s:</strong></span> start input stream iterator 4069 </li> 4070<li class="listitem"> 4071 <span class="bold"><strong>end:</strong></span> end input stream iterator 4072 </li> 4073<li class="listitem"> 4074 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4075 </li> 4076<li class="listitem"> 4077 <span class="bold"><strong>err:</strong></span> the ios_base state 4078 </li> 4079<li class="listitem"> 4080 <span class="bold"><strong>r:</strong></span> a reference to the duration 4081 representation 4082 </li> 4083</ul></div> 4084<p> 4085 <span class="bold"><strong>Effects:</strong></span> As if 4086 </p> 4087<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">use_facet</span><span class="special"><</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> 4088</pre> 4089<p> 4090 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>, 4091 an iterator pointing just beyond the last character that can be determined 4092 to be part of a valid <code class="computeroutput"><span class="identifier">Rep</span></code> 4093 value. 4094 </p> 4095</div> 4096<div class="section"> 4097<div class="titlepage"><div><div><h6 class="title"> 4098<a name="chrono.reference.io.duration_get_hpp.duration_get.get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get_unit" title="Member Function get_unit(iter_type,iter_type,std::ios_base&,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> 4103</pre> 4104<p> 4105 Extracts a duration unit from the range <code class="computeroutput"><span class="special">[</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">end</span><span class="special">)</span></code>. 4106 </p> 4107<p> 4108 <span class="bold"><strong>Parameters:</strong></span> 4109 </p> 4110<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4111<li class="listitem"> 4112 <span class="bold"><strong>s:</strong></span> start input stream iterator 4113 </li> 4114<li class="listitem"> 4115 <span class="bold"><strong>end:</strong></span> end input stream iterator 4116 </li> 4117<li class="listitem"> 4118 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4119 </li> 4120<li class="listitem"> 4121 <span class="bold"><strong>err:</strong></span> the ios_base state 4122 </li> 4123<li class="listitem"> 4124 <span class="bold"><strong>rt:</strong></span> a reference to the duration 4125 run-time ratio. 4126 </li> 4127</ul></div> 4128<p> 4129 <span class="bold"><strong>Effects:</strong></span> 4130 </p> 4131<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 4132 If the first character is <code class="computeroutput"><span class="char">'['</span></code>, 4133 an attempt is made to consume a pattern of the form <code class="computeroutput"><span class="string">"[N/D]"</span></code> where <code class="computeroutput"><span class="identifier">N</span></code> and <code class="computeroutput"><span class="identifier">D</span></code> 4134 have type <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">long</span></code>. 4135 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "> 4136<li class="listitem"> 4137 If successful, rt records the values of <code class="computeroutput"><span class="identifier">N</span></code> 4138 and <code class="computeroutput"><span class="identifier">D</span></code>, otherwise 4139 evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code> 4140 and return <code class="computeroutput"><span class="identifier">i</span></code>. 4141 </li> 4142<li class="listitem"> 4143 Return the parse the longest string possible matching one 4144 of the durations units that can follow the pattern <code class="computeroutput"><span class="string">"[N/D]"</span></code>, as if 4145 </li> 4146</ul></div> 4147 </li></ul></div> 4148<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">do_get_n_d_prefix_unit</span><span class="special">(</span><span class="identifier">facet</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">err</span><span class="special">);</span> 4149</pre> 4150<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 4151 Otherwise the next character is not <code class="computeroutput"><span class="char">'['</span></code>. 4152 Return the parse the longest string possible matching one of the 4153 durations units, as if 4154 </li></ul></div> 4155<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">do_get_prefix_unit</span><span class="special">(</span><span class="identifier">facet</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">rt</span><span class="special">);</span> 4156</pre> 4157<p> 4158 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">i</span></code>, 4159 an iterator pointing just beyond the last character that can be determined 4160 to be part of a valid duration unit. 4161 </p> 4162</div> 4163<div class="section"> 4164<div class="titlepage"><div><div><h6 class="title"> 4165<a name="chrono.reference.io.duration_get_hpp.duration_get.do_get_n_d_prefix_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.do_get_n_d_prefix_unit" title="Protected Member Function do_get_n_d_prefix_unit(duration_units<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> 4175</pre> 4176<p> 4177 Extracts the run-time ratio associated to the duration when it is given 4178 in [N/D] form. 4179 </p> 4180<p> 4181 This is an extension point of this facet so that we can take in account 4182 other periods that can have a useful translation in other contexts, 4183 as e.g. days and weeks. 4184 </p> 4185<p> 4186 <span class="bold"><strong>Parameters:</strong></span> 4187 </p> 4188<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4189<li class="listitem"> 4190 <span class="bold"><strong>s:</strong></span> start input stream iterator 4191 </li> 4192<li class="listitem"> 4193 <span class="bold"><strong>end:</strong></span> end input stream iterator 4194 </li> 4195<li class="listitem"> 4196 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4197 </li> 4198<li class="listitem"> 4199 <span class="bold"><strong>err:</strong></span> the ios_base state 4200 </li> 4201<li class="listitem"> 4202 <span class="bold"><strong>rt:</strong></span> a reference to the duration 4203 run-time ratio. 4204 </li> 4205</ul></div> 4206<p> 4207 <span class="bold"><strong>Effects:</strong></span> Scan <code class="computeroutput"><span class="identifier">s</span></code> 4208 for the longest of all the plural forms associated with the duration 4209 units. If successful, sets the matched ratio in <code class="computeroutput"><span class="identifier">rt</span></code>. 4210 Otherwise evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. 4211 </p> 4212<p> 4213 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>, 4214 an iterator pointing just beyond the last character that can be determined 4215 to be part of a valid name. 4216 </p> 4217</div> 4218<div class="section"> 4219<div class="titlepage"><div><div><h6 class="title"> 4220<a name="chrono.reference.io.duration_get_hpp.duration_get.do_get_prefix_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.do_get_prefix_unit" title="Protected Member Function do_get_prefix_unit(duration_units<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> 4231</pre> 4232<p> 4233 Extracts the run-time ratio associated to the duration when it is given 4234 in prefix form. 4235 </p> 4236<p> 4237 This is an extension point of this facet so that we can take in account 4238 other periods that can have a useful translation in other contexts, 4239 as e.g. days and weeks. 4240 </p> 4241<p> 4242 <span class="bold"><strong>Parameters:</strong></span> 4243 </p> 4244<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4245<li class="listitem"> 4246 <span class="bold"><strong>s:</strong></span> start input stream iterator 4247 </li> 4248<li class="listitem"> 4249 <span class="bold"><strong>end:</strong></span> end input stream iterator 4250 </li> 4251<li class="listitem"> 4252 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4253 </li> 4254<li class="listitem"> 4255 <span class="bold"><strong>err:</strong></span> the ios_base state 4256 </li> 4257<li class="listitem"> 4258 <span class="bold"><strong>rt:</strong></span> a reference to the duration 4259 run-time ratio. 4260 </li> 4261</ul></div> 4262<p> 4263 <span class="bold"><strong>Effects:</strong></span> Scan <code class="computeroutput"><span class="identifier">s</span></code> 4264 for the longest of all the plural forms associated with the duration 4265 units. If successful, sets the matched ratio in <code class="computeroutput"><span class="identifier">rt</span></code>. 4266 Otherwise evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. 4267 </p> 4268<p> 4269 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">s</span></code>, 4270 an iterator pointing just beyond the last character that can be determined 4271 to be part of a valid name. 4272 </p> 4273</div> 4274</div> 4275</div> 4276<div class="section"> 4277<div class="titlepage"><div><div><h4 class="title"> 4278<a name="chrono.reference.io.duration_put_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp" title="Header <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> 4284 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> 4287 4288 <span class="special">}</span> 4289<span class="special">}</span> 4290</pre> 4291<div class="section"> 4292<div class="titlepage"><div><div><h5 class="title"> 4293<a name="chrono.reference.io.duration_put_hpp.duration_put"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put">Template 4294 Class <code class="computeroutput"><span class="identifier">duration_put</span></code></a> 4295</h5></div></div></div> 4296<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 4303 4304 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.c" title="Constructor duration_put(size_t)"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 4305 4306 <span class="keyword">template</span> <span class="special"><</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> 4309 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> 4312 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> 4315 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> 4318 4319 4320 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span> 4321 4322 <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.d" title="Destructor ~duration_put()"><code class="computeroutput"><span class="special">~</span><span class="identifier">duration_put</span></code></a><span class="special">();</span> 4323<span class="special">};</span> 4324</pre> 4325<div class="section"> 4326<div class="titlepage"><div><div><h6 class="title"> 4327<a name="chrono.reference.io.duration_put_hpp.duration_put.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.c" title="Constructor duration_put(size_t)">Constructor 4328 <code class="computeroutput"><span class="identifier">duration_put</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a> 4329</h6></div></div></div> 4330<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_put</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span><span class="special">);</span> 4331</pre> 4332<p> 4333 Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet. 4334 </p> 4335<p> 4336 <span class="bold"><strong>Parameters:</strong></span> 4337 </p> 4338<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 4339 <span class="bold"><strong>refs:</strong></span> references 4340 </li></ul></div> 4341<p> 4342 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet. If the 4343 <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated 4344 to the locale, or locales, containing it. This allows the user to ignore 4345 lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code> 4346 is <code class="computeroutput"><span class="number">1</span></code> then the object must 4347 be explicitly deleted; <code class="computeroutput"><span class="identifier">locale</span></code> 4348 will not do so. In this case, the object can be maintained across the 4349 lifetime of multiple locales. 4350 </p> 4351</div> 4352<div class="section"> 4353<div class="titlepage"><div><div><h6 class="title"> 4354<a name="chrono.reference.io.duration_put_hpp.duration_put.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.d" title="Destructor ~duration_put()">Destructor 4355 <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_put</span><span class="special">()</span></code></a> 4356</h6></div></div></div> 4357<pre class="programlisting"><span class="special">~</span><span class="identifier">duration_put</span><span class="special">();</span> 4358</pre> 4359<p> 4360 Destructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet. 4361 </p> 4362</div> 4363<div class="section"> 4364<div class="titlepage"><div><div><h6 class="title"> 4365<a name="chrono.reference.io.duration_put_hpp.duration_put.put"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put" title="Member Function put(iter_type,std::ios_base&,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> 4373</pre> 4374<p> 4375 <span class="bold"><strong>Parameters:</strong></span> 4376 </p> 4377<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4378<li class="listitem"> 4379 <span class="bold"><strong>s:</strong></span> an output stream iterator 4380 </li> 4381<li class="listitem"> 4382 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4383 </li> 4384<li class="listitem"> 4385 <span class="bold"><strong>d:</strong></span> the duration 4386 </li> 4387<li class="listitem"> 4388 <span class="bold"><strong>pattern:</strong></span> begin of the formatting 4389 pattern 4390 </li> 4391<li class="listitem"> 4392 <span class="bold"><strong>pat_end:</strong></span> end of the formatting 4393 pattern 4394 </li> 4395</ul></div> 4396<p> 4397 <span class="bold"><strong>Effects:</strong></span> Steps through the sequence 4398 from <code class="computeroutput"><span class="identifier">pattern</span></code> to <code class="computeroutput"><span class="identifier">pat_end</span></code>, identifying characters that 4399 are part of a pattern sequence. Each character that is not part of 4400 a pattern sequence is written to <code class="computeroutput"><span class="identifier">s</span></code> 4401 immediately, and each pattern sequence, as it is identified, results 4402 in a call to <code class="computeroutput"><span class="identifier">put_value</span></code> 4403 or <code class="computeroutput"><span class="identifier">put_unit</span></code>; thus, 4404 pattern elements and other characters are interleaved in the output 4405 in the order in which they appear in the pattern. Pattern sequences 4406 are identified by converting each character <code class="computeroutput"><span class="identifier">c</span></code> 4407 to a <code class="computeroutput"><span class="keyword">char</span></code> value as if 4408 by <code class="computeroutput"><span class="identifier">ct</span><span class="special">.</span><span class="identifier">narrow</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code>, where 4409 <code class="computeroutput"><span class="identifier">ct</span></code> is a reference to 4410 <code class="computeroutput"><span class="identifier">ctype</span><span class="special"><</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>. 4417 </p> 4418<p> 4419 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately 4420 after the last character produced. 4421 </p> 4422</div> 4423<div class="section"> 4424<div class="titlepage"><div><div><h6 class="title"> 4425<a name="chrono.reference.io.duration_put_hpp.duration_put.put2"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put2" title="Member Function put(iter_type,std::ios_base&,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> 4430</pre> 4431<p> 4432 <span class="bold"><strong>Parameters:</strong></span> 4433 </p> 4434<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4435<li class="listitem"> 4436 <span class="bold"><strong>s:</strong></span> an output stream iterator 4437 </li> 4438<li class="listitem"> 4439 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4440 </li> 4441<li class="listitem"> 4442 <span class="bold"><strong>d:</strong></span> the duration 4443 </li> 4444</ul></div> 4445<p> 4446 Retrieves Stores the duration pattern from the __duration_unit facet 4447 in let say <code class="computeroutput"><span class="identifier">str</span></code>. Last 4448 as if 4449 </p> 4450<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span> 4451</pre> 4452<p> 4453 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately 4454 after the last character produced. 4455 </p> 4456</div> 4457<div class="section"> 4458<div class="titlepage"><div><div><h6 class="title"> 4459<a name="chrono.reference.io.duration_put_hpp.duration_put.put_value"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put_value" title="Member Function put_value(iter_type, std::ios_base&, 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> 4468</pre> 4469<p> 4470 <span class="bold"><strong>Parameters:</strong></span> 4471 </p> 4472<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4473<li class="listitem"> 4474 <span class="bold"><strong>s:</strong></span> an output stream iterator 4475 </li> 4476<li class="listitem"> 4477 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4478 </li> 4479<li class="listitem"> 4480 <span class="bold"><strong>d:</strong></span> the duration 4481 </li> 4482</ul></div> 4483<p> 4484 <span class="bold"><strong>Effects:</strong></span> As if std::use_facet<std::num_put<CharT, 4485 iter_type> >(ios.getloc()).put(s, ios, ' ', static_cast<long 4486 int> (d.count())). 4487 </p> 4488<p> 4489 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately 4490 after the last character produced. 4491 </p> 4492</div> 4493<div class="section"> 4494<div class="titlepage"><div><div><h6 class="title"> 4495<a name="chrono.reference.io.duration_put_hpp.duration_put.put_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put_unit" title="Member Function put_unit(iter_type,std::ios_base&,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> 4501</pre> 4502<p> 4503 <span class="bold"><strong>Parameters:</strong></span> 4504 </p> 4505<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4506<li class="listitem"> 4507 <span class="bold"><strong>s:</strong></span> an output stream iterator 4508 </li> 4509<li class="listitem"> 4510 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 4511 </li> 4512<li class="listitem"> 4513 <span class="bold"><strong>fill:</strong></span> the fill character 4514 </li> 4515<li class="listitem"> 4516 <span class="bold"><strong>d:</strong></span> the duration 4517 </li> 4518</ul></div> 4519<p> 4520 <span class="bold"><strong>Effects:</strong></span> Let <code class="computeroutput"><span class="identifier">facet</span></code> 4521 be the <code class="computeroutput"><span class="identifier">duration_units</span><span class="special"><</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, 4522 as if 4523 </p> 4524<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">facet</span><span class="special">.</span><span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">get_duration_style</span><span class="special">(</span><span class="identifier">ios</span><span class="special">),</span> <span class="identifier">d</span><span class="special">);</span> 4525<span class="identifier">s</span><span class="special">=</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">str</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">);</span> 4526</pre> 4527<p> 4528 Otherwise, format the unit as <code class="computeroutput"><span class="string">"[Period::num/Period::den]"</span></code> 4529 followed by the unit associated to [N/D] obtained using <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">get_n_d_unit</span><span class="special">(</span><span class="identifier">get_duration_style</span><span class="special">(</span><span class="identifier">ios</span><span class="special">),</span> <span class="identifier">d</span><span class="special">)</span></code>. 4530 </p> 4531<p> 4532 <span class="bold"><strong>Returns:</strong></span> s, iterator pointing immediately 4533 after the last character produced. 4534 </p> 4535</div> 4536</div> 4537</div> 4538<div class="section"> 4539<div class="titlepage"><div><div><h4 class="title"> 4540<a name="chrono.reference.io.duration_units_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp" title="Header <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> 4549</dl></div> 4550<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 4551 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 4552 <span class="keyword">class</span> <span class="identifier">rt_ratio</span><span class="special">;</span> 4553 <span class="keyword">template</span> <span class="special"><</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> 4555 4556 <span class="special">}</span> 4557<span class="special">}</span> 4558</pre> 4559<div class="section"> 4560<div class="titlepage"><div><div><h5 class="title"> 4561<a name="chrono.reference.io.duration_units_hpp.rt_ratio"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.rt_ratio" title="Class rt_ratio">Class 4562 <code class="computeroutput"><span class="identifier">rt_ratio</span></code></a> 4563</h5></div></div></div> 4564<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">rt_ratio</span> 4565<span class="special">{</span> 4566<span class="keyword">public</span><span class="special">:</span> 4567 <span class="keyword">template</span> <span class="special"><</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> 4572 4573 <span class="identifier">rt_ratio</span><span class="special">(</span><span class="identifier">intmax_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">d</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="special">:</span> 4574 <span class="identifier">num</span><span class="special">(</span><span class="identifier">n</span><span class="special">),</span> <span class="identifier">den</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span> 4575 <span class="special">{</span> 4576 <span class="special">}</span> 4577 4578 <span class="identifier">intmax_t</span> <span class="identifier">num</span><span class="special">;</span> 4579 <span class="identifier">intmax_t</span> <span class="identifier">den</span><span class="special">;</span> 4580<span class="special">};</span> 4581</pre> 4582</div> 4583<div class="section"> 4584<div class="titlepage"><div><div><h5 class="title"> 4585<a name="chrono.reference.io.duration_units_hpp.duration_units"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units">Template 4586 Class <code class="computeroutput"><span class="identifier">duration_units</span></code></a> 4587</h5></div></div></div> 4588<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 4595 4596 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.c" title="Constructor duration_units()"><code class="computeroutput"><span class="identifier">duration_units</span></code></a><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 4597 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_start" title="Member Function get_n_d_valid_units_start()"><code class="computeroutput"><span class="identifier">get_n_d_valid_units_start</span></code></a><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span> 4598 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_end" title="Member Function get_n_d_valid_units_end()"><code class="computeroutput"><span class="identifier">get_n_d_valid_units_end</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 4599 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_start" title="Member Function get_valid_units_start()"><code class="computeroutput"><span class="identifier">get_valid_units_start</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 4600 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_end" title="Member Function get_valid_units_end()"><code class="computeroutput"><span class="identifier">get_valid_units_end</span></code></a><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 4601 <span class="keyword">virtual</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_n_d_valid_unit" title="Member Function match_n_d_valid_unit(const string_type*)"><code class="computeroutput"><span class="identifier">match_n_d_valid_unit</span></code></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> 4602 <span class="keyword">virtual</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_valid_unit" title="Member Function match_valid_unit(const string_type*,rt_ratio&)"><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> 4610 4611<span class="keyword">protected</span><span class="special">:</span> 4612 <span class="keyword">virtual</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.d" title="Destructor ~duration_units()"><code class="computeroutput"><span class="special">~</span><span class="identifier">duration_units</span></code></a><span class="special">();</span> 4613 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_n_d_unit" title="Protected Member Function do_get_n_d_unit(duration_style,rt_ratio,intmax_t)"><code class="computeroutput"><span class="identifier">do_get_n_d_unit</span></code></a><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> 4614 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_unit" title="Protected Member Function do_get_unit(duration_style,rt_ratio,intmax_t)"><code class="computeroutput"><span class="identifier">do_get_unit</span></code></a><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> 4615 <span class="keyword">virtual</span> <span class="keyword">bool</span> <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_is_named_unit" title="Protected Member Function do_is_named_unit(rt_ratio)"><code class="computeroutput"><span class="identifier">do_is_named_unit</span></code></a><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span> 4616<span class="special">};</span> 4617</pre> 4618<p> 4619 <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units"><code class="computeroutput"><span class="identifier">duration_units</span></code></a> facet gives useful 4620 information about the duration units, as the number of plural forms, 4621 the plural form associated to a duration, the text associated to a plural 4622 form and a duration's period, 4623 </p> 4624<div class="section"> 4625<div class="titlepage"><div><div><h6 class="title"> 4626<a name="chrono.reference.io.duration_units_hpp.duration_units.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.c" title="Constructor duration_units()">Constructor 4627 <code class="computeroutput"><span class="identifier">duration_units</span><span class="special">()</span></code></a> 4628</h6></div></div></div> 4629<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_units</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 4630</pre> 4631<p> 4632 Construct a <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units"><code class="computeroutput"><span class="identifier">duration_units</span></code></a> facet. 4633 </p> 4634<p> 4635 <span class="bold"><strong>Parameters:</strong></span> 4636 </p> 4637<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 4638 <span class="bold"><strong>refs:</strong></span> references 4639 </li></ul></div> 4640<p> 4641 <span class="bold"><strong>Effects:</strong></span> Construct a <a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units" title="Template Class duration_units"><code class="computeroutput"><span class="identifier">duration_units</span></code></a> facet. If the 4642 <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated 4643 to the locale, or locales, containing it. This allows the user to ignore 4644 lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code> 4645 is <code class="computeroutput"><span class="number">1</span></code> then the object must 4646 be explicitly deleted; the locale will not do so. In this case, the 4647 object can be maintained across the lifetime of multiple locales. 4648 </p> 4649</div> 4650<div class="section"> 4651<div class="titlepage"><div><div><h6 class="title"> 4652<a name="chrono.reference.io.duration_units_hpp.duration_units.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.d" title="Destructor ~duration_units()">Destructor 4653 <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_units</span><span class="special">()</span></code></a> 4654</h6></div></div></div> 4655<pre class="programlisting"><span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">duration_units</span><span class="special">();</span> 4656</pre> 4657<p> 4658 <span class="bold"><strong>Effects:</strong></span> Destroys the facet. 4659 </p> 4660</div> 4661<div class="section"> 4662<div class="titlepage"><div><div><h6 class="title"> 4663<a name="chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_start" title="Member Function get_n_d_valid_units_start()">Member 4664 Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span></code></a> 4665</h6></div></div></div> 4666<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span> 4667</pre> 4668<p> 4669 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid 4670 [N/D] units. 4671 </p> 4672</div> 4673<div class="section"> 4674<div class="titlepage"><div><div><h6 class="title"> 4675<a name="chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_valid_units_end" title="Member Function get_n_d_valid_units_end()">Member 4676 Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span></code></a> 4677</h6></div></div></div> 4678<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 4679</pre> 4680<p> 4681 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid 4682 [N/D] units. 4683 </p> 4684</div> 4685<div class="section"> 4686<div class="titlepage"><div><div><h6 class="title"> 4687<a name="chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_start" title="Member Function get_valid_units_start()">Member 4688 Function <code class="computeroutput"><span class="identifier">get_valid_units_start</span><span class="special">()</span></code></a> 4689</h6></div></div></div> 4690<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 4691</pre> 4692<p> 4693 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid 4694 units, symbol or prefix with its different plural forms. 4695 </p> 4696</div> 4697<div class="section"> 4698<div class="titlepage"><div><div><h6 class="title"> 4699<a name="chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_valid_units_end" title="Member Function get_valid_units_end()">Member 4700 Function <code class="computeroutput"><span class="identifier">get_valid_units_end</span><span class="special">()</span></code></a> 4701</h6></div></div></div> 4702<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 4703</pre> 4704<p> 4705 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid 4706 units. 4707 </p> 4708</div> 4709<div class="section"> 4710<div class="titlepage"><div><div><h6 class="title"> 4711<a name="chrono.reference.io.duration_units_hpp.duration_units.match_n_d_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_n_d_valid_unit" title="Member Function match_n_d_valid_unit(const string_type*)">Member 4712 Function <code class="computeroutput"><span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*)</span></code></a> 4713</h6></div></div></div> 4714<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> 4715</pre> 4716<p> 4717 <span class="bold"><strong>Parameters:</strong></span> 4718 </p> 4719<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 4720 <span class="bold"><strong>k:</strong></span> the found pointer to the [N/D] 4721 unit. 4722 </li></ul></div> 4723<p> 4724 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code> 4725 if <code class="computeroutput"><span class="identifier">k</span></code> matches a valid 4726 unit. 4727 </p> 4728</div> 4729<div class="section"> 4730<div class="titlepage"><div><div><h6 class="title"> 4731<a name="chrono.reference.io.duration_units_hpp.duration_units.match_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.match_valid_unit" title="Member Function match_valid_unit(const string_type*,rt_ratio&)">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> 4735</pre> 4736<p> 4737 <span class="bold"><strong>Parameters:</strong></span> 4738 </p> 4739<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 4740 <span class="bold"><strong>k:</strong></span> the found pointer to the unit. 4741 </li></ul></div> 4742<p> 4743 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rt</span></code> 4744 is set to the valid Period when the <code class="computeroutput"><span class="identifier">k</span></code> 4745 matches a valid unit. <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">k</span></code> 4746 matches a valid unit. 4747 </p> 4748</div> 4749<div class="section"> 4750<div class="titlepage"><div><div><h6 class="title"> 4751<a name="chrono.reference.io.duration_units_hpp.duration_units.get_pattern"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_pattern" title="Member Function get_pattern()">Member 4752 Function <code class="computeroutput"><span class="identifier">get_pattern</span><span class="special">()</span></code></a> 4753</h6></div></div></div> 4754<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 4755</pre> 4756<p> 4757 <span class="bold"><strong>Returns:</strong></span> the pattern to be used by 4758 default. 4759 </p> 4760</div> 4761<div class="section"> 4762<div class="titlepage"><div><div><h6 class="title"> 4763<a name="chrono.reference.io.duration_units_hpp.duration_units.get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_unit" title="Template Member Function get_unit(duration_style,duration<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> 4768</pre> 4769<p> 4770 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">get_unit</span><span class="special">(</span><span class="identifier">style</span><span class="special">,</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">count</span><span class="special">(),</span> <span class="identifier">rt_ratio</span><span class="special">(</span><span class="identifier">Period</span><span class="special">()))</span></code>, the unit associated to this duration. 4771 </p> 4772</div> 4773<div class="section"> 4774<div class="titlepage"><div><div><h6 class="title"> 4775<a name="chrono.reference.io.duration_units_hpp.duration_units.get_n_d_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.get_n_d_unit" title="Template Member Function get_n_d_unit(duration_style,duration<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> 4780</pre> 4781<p> 4782 <span class="bold"><strong>Returns:</strong></span> get_n_d_unit(style, d.count(), 4783 rt_ratio(Period())), i.e. the [N/D] suffix unit associated to this 4784 duration. 4785 </p> 4786</div> 4787<div class="section"> 4788<div class="titlepage"><div><div><h6 class="title"> 4789<a name="chrono.reference.io.duration_units_hpp.duration_units.is_named_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.is_named_unit" title="Template Member Function is_named_unit()">Template 4790 Member Function <code class="computeroutput"><span class="identifier">is_named_unit</span><span class="special">()</span></code></a> 4791</h6></div></div></div> 4792<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 4794</pre> 4795<p> 4796 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span><span class="special">(</span><span class="identifier">Period</span><span class="special">()))</span></code>, true if the unit associated to 4797 the given Period is named, false otherwise. 4798 </p> 4799</div> 4800<div class="section"> 4801<div class="titlepage"><div><div><h6 class="title"> 4802<a name="chrono.reference.io.duration_units_hpp.duration_units.do_get_n_d_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_n_d_unit" title="Protected Member Function do_get_n_d_unit(duration_style,rt_ratio,intmax_t)">Protected 4803 Member Function <code class="computeroutput"><span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a> 4804</h6></div></div></div> 4805<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> 4806</pre> 4807<p> 4808 <span class="bold"><strong>Returns:</strong></span> the [N/D] suffix unit associated 4809 to this duration. 4810 </p> 4811</div> 4812<div class="section"> 4813<div class="titlepage"><div><div><h6 class="title"> 4814<a name="chrono.reference.io.duration_units_hpp.duration_units.do_get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_get_unit" title="Protected Member Function do_get_unit(duration_style,rt_ratio,intmax_t)">Protected 4815 Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a> 4816</h6></div></div></div> 4817<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> 4818</pre> 4819<p> 4820 <span class="bold"><strong>Returns:</strong></span> the unit associated to this 4821 duration. 4822 </p> 4823</div> 4824<div class="section"> 4825<div class="titlepage"><div><div><h6 class="title"> 4826<a name="chrono.reference.io.duration_units_hpp.duration_units.do_is_named_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units.do_is_named_unit" title="Protected Member Function do_is_named_unit(rt_ratio)">Protected 4827 Member Function <code class="computeroutput"><span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span><span class="special">)</span></code></a> 4828</h6></div></div></div> 4829<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span> 4830</pre> 4831<p> 4832 <span class="bold"><strong>Returns:</strong></span> true if the unit associated 4833 to the given Period is named, false otherwise. 4834 </p> 4835</div> 4836</div> 4837<div class="section"> 4838<div class="titlepage"><div><div><h5 class="title"> 4839<a name="chrono.reference.io.duration_units_hpp.duration_units_default"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default" title="Template Class duration_units_default">Template 4840 Class <code class="computeroutput"><span class="identifier">duration_units_default</span></code></a> 4841</h5></div></div></div> 4842<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 4847 4848<span class="keyword">public</span><span class="special">:</span> 4849 <span class="keyword">typedef</span> <span class="identifier">CharT</span> <span class="identifier">char_type</span><span class="special">;</span> 4850 <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">string_type</span><span class="special">;</span> 4851 4852 <span class="keyword">explicit</span> <span class="identifier">duration_units_default</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 4853 <span class="special">~</span><span class="identifier">duration_units_default</span><span class="special">();</span> 4854 4855 <span class="keyword">bool</span> <span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4856 <span class="keyword">bool</span> <span class="identifier">match_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">rt_ratio</span><span class="special">&</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4857 <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> 4858 <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> 4859 <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 4860 <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 4861 <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 4862<span class="keyword">protected</span><span class="special">:</span> 4863 <span class="keyword">bool</span> <span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4864 <span class="identifier">string_type</span> <span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4865 <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4866 4867 <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_forms</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 4868 <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_form</span><span class="special">(</span><span class="identifier">int_least64_t</span> <span class="identifier">value</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4869 4870 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">ratio</span><span class="special"><</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> 4889 4890 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">atto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4891 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">femto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4892 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">pico</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4893 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">nano</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4894 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">micro</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4895 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">milli</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4896 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">centi</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4897 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deci</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4898 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deca</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4899 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">hecto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4900 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">kilo</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4901 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">mega</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4902 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">giga</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4903 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">tera</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4904 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">peta</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4905 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">exa</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 4906<span class="special">};</span> 4907</pre> 4908<p> 4909 This class is used to define the strings for the default English. This 4910 facet names the units associated to the following periods: 4911 </p> 4912<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 4913<li class="listitem"> 4914 <code class="computeroutput"><span class="identifier">atto</span></code>, 4915 </li> 4916<li class="listitem"> 4917 <code class="computeroutput"><span class="identifier">femto</span></code>, 4918 </li> 4919<li class="listitem"> 4920 <code class="computeroutput"><span class="identifier">pico</span></code>, 4921 </li> 4922<li class="listitem"> 4923 <code class="computeroutput"><span class="identifier">nano</span></code>, 4924 </li> 4925<li class="listitem"> 4926 <code class="computeroutput"><span class="identifier">micro</span></code>, 4927 </li> 4928<li class="listitem"> 4929 <code class="computeroutput"><span class="identifier">milli</span></code>, 4930 </li> 4931<li class="listitem"> 4932 <code class="computeroutput"><span class="identifier">centi</span></code>, 4933 </li> 4934<li class="listitem"> 4935 <code class="computeroutput"><span class="identifier">deci</span></code>, 4936 </li> 4937<li class="listitem"> 4938 ratio<1>, 4939 </li> 4940<li class="listitem"> 4941 <code class="computeroutput"><span class="identifier">deca</span></code>, 4942 </li> 4943<li class="listitem"> 4944 <code class="computeroutput"><span class="identifier">hecto</span></code>, 4945 </li> 4946<li class="listitem"> 4947 <code class="computeroutput"><span class="identifier">kilo</span></code>, 4948 </li> 4949<li class="listitem"> 4950 <code class="computeroutput"><span class="identifier">mega</span></code>, 4951 </li> 4952<li class="listitem"> 4953 <code class="computeroutput"><span class="identifier">giga</span></code>, 4954 </li> 4955<li class="listitem"> 4956 <code class="computeroutput"><span class="identifier">tera</span></code>, 4957 </li> 4958<li class="listitem"> 4959 <code class="computeroutput"><span class="identifier">peta</span></code>, 4960 </li> 4961<li class="listitem"> 4962 <code class="computeroutput"><span class="identifier">exa</span></code>, 4963 </li> 4964<li class="listitem"> 4965 ratio<60> and 4966 </li> 4967<li class="listitem"> 4968 ratio<3600>. 4969 </li> 4970</ul></div> 4971<div class="section"> 4972<div class="titlepage"><div><div><h6 class="title"> 4973<a name="chrono.reference.io.duration_units_hpp.duration_units_default.c"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.c" title="Constructor duration_units_default()">Constructor 4974 <code class="computeroutput"><span class="identifier">duration_units_default</span><span class="special">()</span></code></a> 4975</h6></div></div></div> 4976<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_units_default</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 4977</pre> 4978<p> 4979 Construct a duration_units_default facet. 4980 </p> 4981<p> 4982 <span class="bold"><strong>Parameters:</strong></span> 4983 </p> 4984<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 4985 <span class="bold"><strong>refs:</strong></span> references 4986 </li></ul></div> 4987<p> 4988 <span class="bold"><strong>Effects:</strong></span> Construct a duration_units_default 4989 facet. If the <code class="computeroutput"><span class="identifier">refs</span></code> 4990 argument is <code class="computeroutput"><span class="number">0</span></code> then destruction 4991 of the object is delegated to the locale, or locales, containing it. 4992 This allows the user to ignore lifetime management issues. On the other 4993 had, if <code class="computeroutput"><span class="identifier">refs</span></code> is <code class="computeroutput"><span class="number">1</span></code> then the object must be explicitly 4994 deleted; the locale will not do so. In this case, the object can be 4995 maintained across the lifetime of multiple locales. 4996 </p> 4997</div> 4998<div class="section"> 4999<div class="titlepage"><div><div><h6 class="title"> 5000<a name="chrono.reference.io.duration_units_hpp.duration_units_default.d"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.d" title="Destructor ~duration_units_default()">Destructor 5001 <code class="computeroutput"><span class="special">~</span><span class="identifier">duration_units_default</span><span class="special">()</span></code></a> 5002</h6></div></div></div> 5003<pre class="programlisting"><span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">duration_units_default</span><span class="special">();</span> 5004</pre> 5005<p> 5006 <span class="bold"><strong>Effects:</strong></span> Destroys the facet. 5007 </p> 5008</div> 5009<div class="section"> 5010<div class="titlepage"><div><div><h6 class="title"> 5011<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_start" title="Member Function get_n_d_valid_units_start()">Member 5012 Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span></code></a> 5013</h6></div></div></div> 5014<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 5015</pre> 5016<p> 5017 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid 5018 [N/D] units. 5019 </p> 5020</div> 5021<div class="section"> 5022<div class="titlepage"><div><div><h6 class="title"> 5023<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_n_d_valid_units_end" title="Member Function get_n_d_valid_units_end()">Member 5024 Function <code class="computeroutput"><span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span></code></a> 5025</h6></div></div></div> 5026<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_n_d_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 5027</pre> 5028<p> 5029 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid 5030 [N/D] units. 5031 </p> 5032</div> 5033<div class="section"> 5034<div class="titlepage"><div><div><h6 class="title"> 5035<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_start"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_start" title="Member Function get_valid_units_start()">Member 5036 Function <code class="computeroutput"><span class="identifier">get_valid_units_start</span><span class="special">()</span></code></a> 5037</h6></div></div></div> 5038<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_start</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 5039</pre> 5040<p> 5041 <span class="bold"><strong>Returns:</strong></span> pointer to the start of valid 5042 units, symbol or prefix with its different plural forms. 5043 </p> 5044</div> 5045<div class="section"> 5046<div class="titlepage"><div><div><h6 class="title"> 5047<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_end"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_valid_units_end" title="Member Function get_valid_units_end()">Member 5048 Function <code class="computeroutput"><span class="identifier">get_valid_units_end</span><span class="special">()</span></code></a> 5049</h6></div></div></div> 5050<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">get_valid_units_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 5051</pre> 5052<p> 5053 <span class="bold"><strong>Returns:</strong></span> pointer to the end of valid 5054 units. 5055 </p> 5056</div> 5057<div class="section"> 5058<div class="titlepage"><div><div><h6 class="title"> 5059<a name="chrono.reference.io.duration_units_hpp.duration_units_default.match_n_d_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.match_n_d_valid_unit" title="Member Function match_n_d_valid_unit(const string_type*)">Member 5060 Function <code class="computeroutput"><span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*)</span></code></a> 5061</h6></div></div></div> 5062<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">match_n_d_valid_unit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">*</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5063</pre> 5064<p> 5065 <span class="bold"><strong>Parameters:</strong></span> 5066 </p> 5067<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 5068 <span class="bold"><strong>k:</strong></span> the found pointer to the [N/D] 5069 unit. 5070 </li></ul></div> 5071<p> 5072 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code> 5073 if <code class="computeroutput"><span class="identifier">k</span></code> matches a valid 5074 unit. 5075 </p> 5076</div> 5077<div class="section"> 5078<div class="titlepage"><div><div><h6 class="title"> 5079<a name="chrono.reference.io.duration_units_hpp.duration_units_default.match_valid_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.match_valid_unit" title="Member Function match_valid_unit(const string_type*,rt_ratio&)">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> 5083</pre> 5084<p> 5085 <span class="bold"><strong>Parameters:</strong></span> 5086 </p> 5087<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 5088 <span class="bold"><strong>k:</strong></span> the found pointer to the unit. 5089 </li></ul></div> 5090<p> 5091 <span class="bold"><strong>Effects:</strong></span> <code class="computeroutput"><span class="identifier">rt</span></code> 5092 is set to the valid Period when the <code class="computeroutput"><span class="identifier">k</span></code> 5093 matches a valid unit. <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">k</span></code> 5094 matches a valid unit. 5095 </p> 5096</div> 5097<div class="section"> 5098<div class="titlepage"><div><div><h6 class="title"> 5099<a name="chrono.reference.io.duration_units_hpp.duration_units_default.get_pattern"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.get_pattern" title="Member Function get_pattern()">Member 5100 Function <code class="computeroutput"><span class="identifier">get_pattern</span><span class="special">()</span></code></a> 5101</h6></div></div></div> 5102<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 5103</pre> 5104<p> 5105 <span class="bold"><strong>Returns:</strong></span> the pattern to be used by 5106 default. 5107 </p> 5108</div> 5109<div class="section"> 5110<div class="titlepage"><div><div><h6 class="title"> 5111<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_n_d_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_n_d_unit" title="Protected Member Function do_get_n_d_unit(duration_style,rt_ratio,intmax_t)">Protected 5112 Member Function <code class="computeroutput"><span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a> 5113</h6></div></div></div> 5114<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_n_d_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5115</pre> 5116<p> 5117 <span class="bold"><strong>Returns:</strong></span> the [N/D] suffix unit associated 5118 to this duration. 5119 </p> 5120</div> 5121<div class="section"> 5122<div class="titlepage"><div><div><h6 class="title"> 5123<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit" title="Protected Member Function do_get_unit(duration_style,rt_ratio,intmax_t)">Protected 5124 Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">rt_ratio</span><span class="special">,</span><span class="identifier">intmax_t</span><span class="special">)</span></code></a> 5125</h6></div></div></div> 5126<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5127</pre> 5128<p> 5129 <span class="bold"><strong>Returns:</strong></span> the unit associated to this 5130 duration. 5131 </p> 5132</div> 5133<div class="section"> 5134<div class="titlepage"><div><div><h6 class="title"> 5135<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_is_named_unit"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_is_named_unit" title="Protected Member Function do_is_named_unit(rt_ratio)">Protected 5136 Member Function <code class="computeroutput"><span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span><span class="special">)</span></code></a> 5137</h6></div></div></div> 5138<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">do_is_named_unit</span><span class="special">(</span><span class="identifier">rt_ratio</span> <span class="identifier">rt</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5139</pre> 5140<p> 5141 <span class="bold"><strong>Returns:</strong></span> true if the unit associated 5142 to the given Period is named, false otherwise. 5143 </p> 5144</div> 5145<div class="section"> 5146<div class="titlepage"><div><div><h6 class="title"> 5147<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_forms"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_forms" title="Protected Member Function do_get_plural_forms()">Protected 5148 Member Function <code class="computeroutput"><span class="identifier">do_get_plural_forms</span><span class="special">()</span></code></a> 5149</h6></div></div></div> 5150<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_forms</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 5151</pre> 5152<p> 5153 <span class="bold"><strong>Returns:</strong></span> the number of associated 5154 plural forms this facet manages. 5155 </p> 5156</div> 5157<div class="section"> 5158<div class="titlepage"><div><div><h6 class="title"> 5159<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_form"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_plural_form" title="Protected Member Function do_get_plural_form(int_least64_t)">Protected 5160 Member Function <code class="computeroutput"><span class="identifier">do_get_plural_form</span><span class="special">(</span><span class="identifier">int_least64_t</span><span class="special">)</span></code></a> 5161</h6></div></div></div> 5162<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">do_get_plural_form</span><span class="special">(</span><span class="identifier">int_least64_t</span> <span class="identifier">value</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5163</pre> 5164<p> 5165 Gets the associated plural form. 5166 </p> 5167<p> 5168 <span class="bold"><strong>Parameters:</strong></span> 5169 </p> 5170<p> 5171 <span class="bold"><strong>value:</strong></span> the duration representation 5172 </p> 5173<p> 5174 <span class="bold"><strong>Returns:</strong></span> the plural form associated 5175 to the <code class="computeroutput"><span class="identifier">value</span></code> parameter. 5176 In English there are 2 plural forms 5177 </p> 5178<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5179<li class="listitem"> 5180 0 singular (-1 or 1) 5181 </li> 5182<li class="listitem"> 5183 1 plural for all others 5184 </li> 5185</ul></div> 5186</div> 5187<div class="section"> 5188<div class="titlepage"><div><div><h6 class="title"> 5189<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_seconds"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_seconds" title="Protected Member Function do_get_unit(duration_style,ratio<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> 5193</pre> 5194<p> 5195 <span class="bold"><strong>Parameters:</strong></span> 5196 </p> 5197<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5198<li class="listitem"> 5199 <span class="bold"><strong>style:</strong></span> the duration style. 5200 </li> 5201<li class="listitem"> 5202 <span class="bold"><strong>period:</strong></span> the period associated 5203 to the duration hours. 5204 </li> 5205<li class="listitem"> 5206 <span class="bold"><strong>pf:</strong></span> the requested plural form. 5207 </li> 5208</ul></div> 5209<p> 5210 <span class="bold"><strong>Returns:</strong></span> if style is symbol returns 5211 "s", otherwise if pf is 0 return "second", if pf 5212 is 1 "seconds" 5213 </p> 5214</div> 5215<div class="section"> 5216<div class="titlepage"><div><div><h6 class="title"> 5217<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_minutes"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_minutes" title="Protected Member Function do_get_unit(duration_style style,ratio<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> 5222</pre> 5223<p> 5224 <span class="bold"><strong>Parameters:</strong></span> 5225 </p> 5226<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5227<li class="listitem"> 5228 <span class="bold"><strong>style:</strong></span> the duration style. 5229 </li> 5230<li class="listitem"> 5231 <span class="bold"><strong>period:</strong></span> the period associated 5232 to the duration hours. 5233 </li> 5234<li class="listitem"> 5235 <span class="bold"><strong>pf:</strong></span> the requested plural form. 5236 </li> 5237</ul></div> 5238<p> 5239 <span class="bold"><strong>Returns:</strong></span> if style is symbol returns 5240 "min", otherwise if pf is 0 return "minute", if 5241 pf is 1 "minutes" 5242 </p> 5243</div> 5244<div class="section"> 5245<div class="titlepage"><div><div><h6 class="title"> 5246<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_hours"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_hours" title="Protected Member Function do_get_unit(duration_style,ratio<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> 5250</pre> 5251<p> 5252 <span class="bold"><strong>Parameters:</strong></span> 5253 </p> 5254<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5255<li class="listitem"> 5256 <span class="bold"><strong>style:</strong></span> the duration style. 5257 </li> 5258<li class="listitem"> 5259 <span class="bold"><strong>period:</strong></span> the period associated 5260 to the duration hours. 5261 </li> 5262<li class="listitem"> 5263 <span class="bold"><strong>pf:</strong></span> the requested plural form. 5264 </li> 5265</ul></div> 5266<p> 5267 <span class="bold"><strong>Returns:</strong></span> if style is symbol returns 5268 "h", otherwise if pf is 0 return "hour", if pf 5269 is 1 "hours" 5270 </p> 5271</div> 5272<div class="section"> 5273<div class="titlepage"><div><div><h6 class="title"> 5274<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_xxx"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_unit_xxx" title="Protected Member Function do_get_unit(duration_style,Period,std::size_t)">Protected 5275 Member Function <code class="computeroutput"><span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span><span class="identifier">Period</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span></code></a> 5276</h6></div></div></div> 5277<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">atto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5278<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">femto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5279<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">pico</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5280<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">nano</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5281<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">micro</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5282<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">milli</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5283<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">centi</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5284<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deci</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5285<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deca</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5286<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">hecto</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5287<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">kilo</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5288<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">mega</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5289<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">giga</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5290<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">tera</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5291<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">peta</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5292<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_unit</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">exa</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pf</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5293</pre> 5294<p> 5295 <span class="bold"><strong>Parameters:</strong></span> 5296 </p> 5297<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5298<li class="listitem"> 5299 <span class="bold"><strong>style:</strong></span> the duration style. 5300 </li> 5301<li class="listitem"> 5302 <span class="bold"><strong>u:</strong></span> the period tag atto. 5303 </li> 5304<li class="listitem"> 5305 <span class="bold"><strong>pf:</strong></span> the requested plural form. 5306 </li> 5307</ul></div> 5308<p> 5309 <span class="bold"><strong>Returns:</strong></span> the concatenation of the 5310 prefix associated to period <code class="computeroutput"><span class="identifier">u</span></code> 5311 + the one associated to seconds. 5312 </p> 5313</div> 5314<div class="section"> 5315<div class="titlepage"><div><div><h6 class="title"> 5316<a name="chrono.reference.io.duration_units_hpp.duration_units_default.do_get_ratio_prefix_xxx"></a><a class="link" href="reference.html#chrono.reference.io.duration_units_hpp.duration_units_default.do_get_ratio_prefix_xxx" title="Protected Member Function do_get_ratio_prefix(duration_style, Period)">Protected 5317 Member Function <code class="computeroutput"><span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">)</span></code></a> 5318</h6></div></div></div> 5319<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">atto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5320<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">femto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5321<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">pico</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5322<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">nano</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5323<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">micro</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5324<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">milli</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5325<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">centi</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5326<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deci</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5327<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">deca</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5328<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">hecto</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5329<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">kilo</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5330<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">mega</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5331<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">giga</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5332<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">tera</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5333<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">peta</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5334<span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_ratio_prefix</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">style</span><span class="special">,</span> <span class="identifier">exa</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 5335</pre> 5336<p> 5337 <span class="bold"><strong>Parameters:</strong></span> 5338 </p> 5339<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5340<li class="listitem"> 5341 <span class="bold"><strong>style:</strong></span> the duration style. 5342 </li> 5343<li class="listitem"> 5344 <span class="bold"><strong>u:</strong></span> the period tag atto. 5345 </li> 5346</ul></div> 5347<p> 5348 <span class="bold"><strong>Returns:</strong></span> depending on the value of 5349 <code class="computeroutput"><span class="identifier">style</span></code> return the ratio_string 5350 symbol or prefix. 5351 </p> 5352</div> 5353</div> 5354</div> 5355<div class="section"> 5356<div class="titlepage"><div><div><h4 class="title"> 5357<a name="chrono.reference.io.duration_io_hpp"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp" title="Header <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> 5364</dl></div> 5365<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 5366 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 5367 5368 <span class="comment">// manipulators</span> 5369 5370 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">&</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> 5376 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> 5380 5381 5382 <span class="comment">// duration I/O</span> 5383 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> 5387 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> 5391 5392 <span class="special">}</span> 5393<span class="special">}</span> 5394</pre> 5395<div class="section"> 5396<div class="titlepage"><div><div><h5 class="title"> 5397<a name="chrono.reference.io.duration_io_hpp.manipulators"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators" title="I/O Manipulators">I/O 5398 Manipulators</a> 5399</h5></div></div></div> 5400<p> 5401 There is a parameterized manipulator that takes the duration_style as 5402 parameter. The symbol or name format can be easily chosen by streaming 5403 a <code class="computeroutput"><span class="identifier">symbol_format</span></code> or <code class="computeroutput"><span class="identifier">name_format</span></code> manipulators respectively. 5404 </p> 5405<div class="section"> 5406<div class="titlepage"><div><div><h6 class="title"> 5407<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt" title="Template Class duration_fmt">Template 5408 Class <code class="computeroutput"><span class="identifier">duration_fmt</span></code></a> 5409</h6></div></div></div> 5410<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">duration_fmt</span> 5411<span class="special">{</span> 5412<span class="keyword">public</span><span class="special">:</span> 5413 5414 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.c1" title="Constructor duration_fmt(duration_style)"><code class="computeroutput"><span class="identifier">duration_fmt</span></code></a><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <span class="identifier">style</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 5415 5416<span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span> 5417 <span class="keyword">explicit</span> 5418 <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style" title="Member Function operator duration_style()"><code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">duration_style</span></code></a><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 5419<span class="preprocessor">#endif</span> 5420 <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a> <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style" title="Member Function operator duration_style()"><code class="computeroutput"><span class="identifier">get_duration_style</span></code></a><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 5421<span class="special">};</span> 5422 5423<span class="keyword">template</span><span class="special"><</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> 5426 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> 5430</pre> 5431<div class="section"> 5432<div class="titlepage"><div><div><h6 class="title"> 5433<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.c1"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.c1" title="Constructor duration_fmt(duration_style)">Constructor 5434 <code class="computeroutput"><span class="identifier">duration_fmt</span><span class="special">(</span><span class="identifier">duration_style</span><span class="special">)</span></code></a> 5435</h6></div></div></div> 5436<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">duration_fmt</span><span class="special">(</span><span class="identifier">duration_style</span> <span class="identifier">f</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 5437</pre> 5438<p> 5439 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt" title="Template Class duration_fmt"><code class="computeroutput"><span class="identifier">duration_fmt</span></code></a> by storing 5440 <code class="computeroutput"><span class="identifier">f</span></code>. 5441 </p> 5442<p> 5443 <span class="bold"><strong>Post Conditions:</strong></span> <code class="computeroutput"><span class="keyword">static_cast</span><span class="special"><</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>. 5444 </p> 5445</div> 5446<div class="section"> 5447<div class="titlepage"><div><div><h6 class="title"> 5448<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_duration_style" title="Member Function operator duration_style()">Member 5449 Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">duration_style</span><span class="special">()</span></code></a> 5450</h6></div></div></div> 5451<pre class="programlisting"><span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="identifier">duration_style</span><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 5452<span class="identifier">duration_style</span> <span class="identifier">get_duration_style</span><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 5453</pre> 5454<p> 5455 <span class="bold"><strong>Returns:</strong></span>: The stored <a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt" title="Template Class duration_fmt"><code class="computeroutput"><span class="identifier">duration_fmt</span></code></a> <code class="computeroutput"><span class="identifier">f</span></code>. 5456 </p> 5457</div> 5458<div class="section"> 5459<div class="titlepage"><div><div><h6 class="title"> 5460<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_out" title="Member Function operator <<(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> 5467</pre> 5468<p> 5469 <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &,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>. 5470 </p> 5471<p> 5472 <span class="bold"><strong>Returns:</strong></span>: <code class="computeroutput"><span class="identifier">s</span></code>. 5473 </p> 5474</div> 5475<div class="section"> 5476<div class="titlepage"><div><div><h6 class="title"> 5477<a name="chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.duration_fmt.op_in" title="Member Function operator >>(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> 5484</pre> 5485<p> 5486 <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &,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>. 5487 </p> 5488<p> 5489 <span class="bold"><strong>Returns:</strong></span>: <code class="computeroutput"><span class="identifier">s</span></code>. 5490 </p> 5491</div> 5492</div> 5493<div class="section"> 5494<div class="titlepage"><div><div><h6 class="title"> 5495<a name="chrono.reference.io.duration_io_hpp.manipulators.symbol_format"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.symbol_format" title="Non Member Function symbol_format(ios_base&)">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> 5499</pre> 5500<p> 5501 <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &,duration_style)"><code class="computeroutput"><span class="identifier">set_duration_style</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a><span class="special">::</span><span class="identifier">symbol</span><span class="special">)</span></code>. 5502 </p> 5503<p> 5504 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">ios</span></code> 5505 </p> 5506</div> 5507<div class="section"> 5508<div class="titlepage"><div><div><h6 class="title"> 5509<a name="chrono.reference.io.duration_io_hpp.manipulators.name_format"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.manipulators.name_format" title="Non Member Function name_format(ios_base&)">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> 5513</pre> 5514<p> 5515 <span class="bold"><strong>Effects:</strong></span>: <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_duration_style" title="Non Member Function set_duration_style(std::ios_base &,duration_style)"><code class="computeroutput"><span class="identifier">set_duration_style</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <a class="link" href="reference.html#chrono.reference.io.duration_style_hpp.duration_style" title="Scoped enum duration_style"><code class="computeroutput"><span class="identifier">duration_style</span></code></a><span class="special">::</span><span class="identifier">prefix</span><span class="special">)</span></code>. 5516 </p> 5517<p> 5518 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">ios</span></code> 5519 </p> 5520</div> 5521</div> 5522<div class="section"> 5523<div class="titlepage"><div><div><h5 class="title"> 5524<a name="chrono.reference.io.duration_io_hpp.streams"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams" title="I/O Streams Operations">I/O 5525 Streams Operations</a> 5526</h5></div></div></div> 5527<div class="section"> 5528<div class="titlepage"><div><div><h6 class="title"> 5529<a name="chrono.reference.io.duration_io_hpp.streams.duration__op_out"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_out" title="Member Function operator <<(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> 5533<p> 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. 5538 </p> 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> 5542</pre> 5543<p> 5544 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted output 5545 function. After constructing a sentry object, if the sentry converts 5546 to true, calls to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put.put" title="Member Function put(iter_type,std::ios_base&,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> 5551 facet. 5552 </p> 5553<p> 5554 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>. 5555 </p> 5556</div> 5557<div class="section"> 5558<div class="titlepage"><div><div><h6 class="title"> 5559<a name="chrono.reference.io.duration_io_hpp.streams.duration__op_in"></a><a class="link" href="reference.html#chrono.reference.io.duration_io_hpp.streams.duration__op_in" title="Member Function operator <<(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> 5566</pre> 5567<p> 5568 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted input 5569 function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code> 5570 object, if the <code class="computeroutput"><span class="identifier">sentry</span></code> 5571 converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls 5572 to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><a class="link" href="reference.html#chrono.reference.io.duration_get_hpp.duration_get.get" title="Template Member Function get(iter_type,iter_type,std::ios_base&,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> 5581 facet. 5582 </p> 5583<p> 5584 If any step fails, calls <code class="computeroutput"><span class="identifier">os</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span> 5585 <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">)</span></code>. 5586 </p> 5587<p> 5588 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code> 5589 </p> 5590</div> 5591</div> 5592</div> 5593<div class="section"> 5594<div class="titlepage"><div><div><h4 class="title"> 5595<a name="chrono.reference.io.time_point_get_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp" title="Header <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> 5605</pre> 5606<div class="section"> 5607<div class="titlepage"><div><div><h5 class="title"> 5608<a name="chrono.reference.io.time_point_get_hpp.time_point_get"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get" title="Template Class time_point_get">Template 5609 Class <code class="computeroutput"><span class="identifier">time_point_get</span></code></a> 5610</h5></div></div></div> 5611<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 5617 5618 <span class="keyword">explicit</span> <span class="identifier">__time_point_get_c</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 5619 5620 <span class="keyword">template</span> <span class="special"><</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> 5623 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> 5627 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> 5631 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> 5634 5635 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span> 5636 5637 <span class="identifier">__time_point_get_d</span><span class="special">();</span> 5638<span class="special">};</span> 5639</pre> 5640<p> 5641 <code class="computeroutput"><span class="identifier">time_point_get</span></code> is used 5642 to parse a character sequence, extracting the duration and the epoch 5643 into a class <code class="computeroutput"><span class="identifier">time_point</span></code>. 5644 </p> 5645<p> 5646 The pattern can contain the format specifiers <code class="computeroutput"><span class="special">%</span><span class="identifier">d</span></code> and <code class="computeroutput"><span class="special">%</span><span class="identifier">e</span></code> in any order. 5647 </p> 5648<p> 5649 User confirmation is required for reliable parsing of user-entered durations, 5650 but machine-generated formats can be parsed reliably. This allows parsers 5651 to be aggressive about interpreting user variations on standard formats. 5652 </p> 5653<p> 5654 If the end iterator is reached during parsing the member function sets 5655 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">eofbit</span></code> in <code class="computeroutput"><span class="identifier">err</span></code>. 5656 </p> 5657<div class="section"> 5658<div class="titlepage"><div><div><h6 class="title"> 5659<a name="chrono.reference.io.time_point_get_hpp.time_point_get.c"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.c" title="Constructor time_point_get(size_t)">Constructor 5660 <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a> 5661</h6></div></div></div> 5662<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_point_get</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span><span class="special">);</span> 5663</pre> 5664<p> 5665 Constructs a __time_point_get facet. 5666 </p> 5667<p> 5668 <span class="bold"><strong>Parameters:</strong></span> 5669 </p> 5670<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 5671 <span class="bold"><strong>refs:</strong></span> references 5672 </li></ul></div> 5673<p> 5674 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a> facet. If the 5675 <code class="computeroutput"><span class="identifier">refs</span></code> argument is <code class="computeroutput"><span class="number">0</span></code> then destruction of the object is delegated 5676 to the locale, or locales, containing it. This allows the user to ignore 5677 lifetime management issues. On the other had, if <code class="computeroutput"><span class="identifier">refs</span></code> 5678 is <code class="computeroutput"><span class="number">1</span></code> then the object must 5679 be explicitly deleted; <code class="computeroutput"><span class="identifier">locale</span></code> 5680 will not do so. In this case, the object can be maintained across the 5681 lifetime of multiple locales. 5682 </p> 5683</div> 5684<div class="section"> 5685<div class="titlepage"><div><div><h6 class="title"> 5686<a name="chrono.reference.io.time_point_get_hpp.time_point_get.d"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.d" title="Destructor ~time_point_get()">Destructor 5687 <code class="computeroutput"><span class="special">~</span><span class="identifier">time_point_get</span><span class="special">()</span></code></a> 5688</h6></div></div></div> 5689<pre class="programlisting"><span class="special">~</span><span class="identifier">time_point_get</span><span class="special">();</span> 5690</pre> 5691<p> 5692 <span class="bold"><strong>Effects:</strong></span> Destroy the facet. 5693 </p> 5694</div> 5695<div class="section"> 5696<div class="titlepage"><div><div><h6 class="title"> 5697<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get" title="Template Member Function get(iter_type,iter_type,std::ios_base&,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> 5703</pre> 5704<p> 5705 <span class="bold"><strong>Parameters:</strong></span> 5706 </p> 5707<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5708<li class="listitem"> 5709 <span class="bold"><strong>s:</strong></span> start input stream iterator 5710 </li> 5711<li class="listitem"> 5712 <span class="bold"><strong>end:</strong></span> end input stream iterator 5713 </li> 5714<li class="listitem"> 5715 <span class="bold"><strong>ios:</strong></span> a reference to a <code class="computeroutput"><span class="identifier">ios_base</span></code> 5716 </li> 5717<li class="listitem"> 5718 <span class="bold"><strong>err:</strong></span> the <code class="computeroutput"><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span></code> 5719 </li> 5720<li class="listitem"> 5721 <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> 5722 </li> 5723<li class="listitem"> 5724 <span class="bold"><strong>pattern:</strong></span> begin of the formatting 5725 pattern 5726 </li> 5727<li class="listitem"> 5728 <span class="bold"><strong>pat_end:</strong></span> end of the formatting 5729 pattern 5730 </li> 5731</ul></div> 5732<p> 5733 <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code> 5734 must be a valid range. 5735 </p> 5736<p> 5737 <span class="bold"><strong>Effects:</strong></span>: The function starts by evaluating 5738 <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> 5739 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code>. It then enters a loop, reading 5740 zero or more characters from <code class="computeroutput"><span class="identifier">s</span></code> 5741 at each iteration. Unless otherwise specified below, the loop terminates 5742 when the first of the following conditions holds: 5743 </p> 5744<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5745<li class="listitem"> 5746 The expression <code class="computeroutput"><span class="identifier">pattern</span> 5747 <span class="special">==</span> <span class="identifier">pat_end</span></code> 5748 evaluates to <code class="computeroutput"><span class="keyword">true</span></code>. 5749 </li> 5750<li class="listitem"> 5751 The expression <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code> 5752 evaluates to <code class="computeroutput"><span class="keyword">false</span></code>. 5753 </li> 5754<li class="listitem"> 5755 The expression <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span> <span class="identifier">end</span></code> 5756 evaluates to <code class="computeroutput"><span class="keyword">true</span></code>, 5757 in which case the function evaluates <code class="computeroutput"><span class="identifier">err</span> 5758 <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">eofbit</span> 5759 <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. 5760 </li> 5761<li class="listitem"> 5762 The next element of pattern is equal to <code class="computeroutput"><span class="char">'%'</span></code>, 5763 followed by a conversion specifier character, the functions <code class="computeroutput"><span class="identifier">get_duration</span></code> or <code class="computeroutput"><span class="identifier">get_epoch</span></code> are called depending 5764 on whether the format is <code class="computeroutput"><span class="char">'d'</span></code> 5765 or <code class="computeroutput"><span class="char">'e'</span></code>. If the number 5766 of elements in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">pattern</span><span class="special">,</span><span class="identifier">pat_end</span><span class="special">)</span></code> 5767 is not sufficient to unambiguously determine whether the conversion 5768 specification is complete and valid, the function evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">|=</span> 5769 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. Otherwise, the function 5770 evaluates <code class="computeroutput"><span class="identifier">s</span> <span class="special">=</span> 5771 <span class="identifier">do_get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> 5772 <span class="identifier">end</span><span class="special">,</span> 5773 <span class="identifier">ios</span><span class="special">,</span> 5774 <span class="identifier">err</span><span class="special">,</span> 5775 <span class="identifier">d</span><span class="special">)</span></code>. 5776 If <code class="computeroutput"><span class="identifier">err</span> <span class="special">==</span> 5777 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">goodbit</span></code> holds after the evaluation 5778 of the expression, the function increments pattern to point just 5779 past the end of the conversion specification and continues looping. 5780 </li> 5781<li class="listitem"> 5782 The expression <code class="computeroutput"><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> evaluates to <code class="computeroutput"><span class="keyword">true</span></code>, 5783 in which case the function first increments <code class="computeroutput"><span class="identifier">pattern</span></code> 5784 until <code class="computeroutput"><span class="identifier">pattern</span> <span class="special">==</span> <span class="identifier">pat_end</span> 5785 <span class="special">||</span> <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">pattern</span><span class="special">,</span> 5786 <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> 5787 evaluates to <code class="computeroutput"><span class="keyword">true</span></code>, 5788 then advances <code class="computeroutput"><span class="identifier">s</span></code> 5789 until <code class="computeroutput"><span class="identifier">s</span> <span class="special">==</span> 5790 <span class="identifier">end</span> <span class="special">||</span> 5791 <span class="special">!</span><span class="identifier">isspace</span><span class="special">(*</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">())</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>, 5792 and finally resumes looping. 5793 </li> 5794<li class="listitem"> 5795 The next character read from <code class="computeroutput"><span class="identifier">s</span></code> 5796 matches the element pointed to by pattern in a case-insensitive 5797 comparison, in which case the function evaluates <code class="computeroutput"><span class="special">++</span><span class="identifier">pattern</span></code>, 5798 <code class="computeroutput"><span class="special">++</span><span class="identifier">s</span></code> 5799 and continues looping. Otherwise, the function evaluates <code class="computeroutput"><span class="identifier">err</span> <span class="special">=</span> 5800 <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code>. 5801 </li> 5802</ul></div> 5803<p> 5804 <span class="bold"><strong>Returns:</strong></span> An iterator pointing just 5805 beyond the last character that can be determined to be part of a valid 5806 time_point. 5807 </p> 5808</div> 5809<div class="section"> 5810<div class="titlepage"><div><div><h6 class="title"> 5811<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get2"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get2" title="Template Member Function get(iter_type,iter_type,std::ios_base&,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> 5817</pre> 5818<p> 5819 <span class="bold"><strong>Parameters:</strong></span> 5820 </p> 5821<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 5822<li class="listitem"> 5823 <span class="bold"><strong>s:</strong></span> start input stream iterator 5824 </li> 5825<li class="listitem"> 5826 <span class="bold"><strong>end:</strong></span> end input stream iterator 5827 </li> 5828<li class="listitem"> 5829 <span class="bold"><strong>ios:</strong></span> a reference to a <code class="computeroutput"><span class="identifier">ios_base</span></code> 5830 </li> 5831<li class="listitem"> 5832 <span class="bold"><strong>err:</strong></span> the <code class="computeroutput"><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iostate</span></code> 5833 </li> 5834<li class="listitem"> 5835 <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> 5836 </li> 5837</ul></div> 5838<p> 5839 <span class="bold"><strong>Effects:</strong></span> Stores the duration pattern 5840 from the <code class="computeroutput"><span class="identifier">duration_unit</span></code> 5841 facet in let say <code class="computeroutput"><span class="identifier">str</span></code>. 5842 Last as if 5843 </p> 5844<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span> 5845</pre> 5846<p> 5847 <span class="bold"><strong>Returns:</strong></span> An iterator pointing just 5848 beyond the last character that can be determined to be part of a valid 5849 name. 5850 </p> 5851</div> 5852<div class="section"> 5853<div class="titlepage"><div><div><h6 class="title"> 5854<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get_duration"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get_duration" title="Template Member Function get_duration(iter_type,iter_type,std::ios_base&,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> 5860</pre> 5861<p> 5862 <span class="bold"><strong>Effects:</strong></span> As if 5863 </p> 5864<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">facet</span><span class="special">.</span><span class="identifier">get</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">d</span><span class="special">);</span> 5865</pre> 5866<p> 5867 where <code class="computeroutput"><span class="identifier">facet</span></code> is either 5868 the <code class="computeroutput"><span class="identifier">duration_get</span></code> facet 5869 associated to the <code class="computeroutput"><span class="identifier">ios</span></code> 5870 or an instance of the default <code class="computeroutput"><span class="identifier">duration_get</span></code> 5871 facet. 5872 </p> 5873<p> 5874 <span class="bold"><strong>Returns:</strong></span> An iterator pointing just 5875 beyond the last character that can be determined to be part of a valid 5876 duration. 5877 </p> 5878</div> 5879<div class="section"> 5880<div class="titlepage"><div><div><h6 class="title"> 5881<a name="chrono.reference.io.time_point_get_hpp.time_point_get.get_epoch"></a><a class="link" href="reference.html#chrono.reference.io.time_point_get_hpp.time_point_get.get_epoch" title="Template Member Function get_epoch(iter_type,iter_type,std::ios_base&,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> 5886</pre> 5887<p> 5888 <span class="bold"><strong>Effects:</strong></span> Let <code class="computeroutput"><span class="identifier">facet</span></code> 5889 be the <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet associated 5890 to <code class="computeroutput"><span class="identifier">ios</span></code> or a new instance 5891 of the default __time_point_units_default facet. Let <code class="computeroutput"><span class="identifier">epoch</span></code> be the epoch string associated 5892 to the <code class="computeroutput"><span class="identifier">Clock</span></code> using 5893 this facet. Scans <code class="computeroutput"><span class="identifier">s</span></code> 5894 to match <code class="computeroutput"><span class="identifier">epoch</span></code> or 5895 <code class="computeroutput"><span class="identifier">end</span></code> is reached. 5896 </p> 5897<p> 5898 If not match before the <code class="computeroutput"><span class="identifier">end</span></code> 5899 is reached <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code> is set in <code class="computeroutput"><span class="identifier">err</span></code>. 5900 If <code class="computeroutput"><span class="identifier">end</span></code> is reached 5901 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span></code> is set in <code class="computeroutput"><span class="identifier">err</span></code>. 5902 </p> 5903<p> 5904 <span class="bold"><strong>Returns:</strong></span> An iterator pointing just 5905 beyond the last character that can be determined to be part of a epoch. 5906 </p> 5907</div> 5908</div> 5909</div> 5910<div class="section"> 5911<div class="titlepage"><div><div><h4 class="title"> 5912<a name="chrono.reference.io.time_point_put_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp" title="Header <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> 5922</pre> 5923<div class="section"> 5924<div class="titlepage"><div><div><h5 class="title"> 5925<a name="chrono.reference.io.time_point_put_hpp.time_point_put"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put" title="Template Class time_point_put">Template 5926 Class <code class="computeroutput"><span class="identifier">time_point_put</span></code></a> 5927</h5></div></div></div> 5928<p> 5929 The __time_point_put facet provides facilities for formatted output of 5930 <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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. 5933 </p> 5934<p> 5935 tparam ChatT a character type tparam OutputIterator a model of <code class="computeroutput"><span class="identifier">OutputIterator</span></code> 5936 </p> 5937<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 5944 5945 <span class="keyword">explicit</span> <span class="identifier">time_point_put</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 5946 <span class="special">~</span><span class="identifier">time_point_put</span><span class="special">();</span> 5947 5948 <span class="keyword">template</span> <span class="special"><</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> 5957 5958 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">;</span> <span class="comment">// Unique identifier for this type of facet.</span> 5959 5960 5961<span class="special">};</span> 5962</pre> 5963<div class="section"> 5964<div class="titlepage"><div><div><h6 class="title"> 5965<a name="chrono.reference.io.time_point_put_hpp.time_point_put.c"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.c" title="Constructor time_point_get(size_t)">Constructor 5966 <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special">(</span><span class="identifier">size_t</span><span class="special">)</span></code></a> 5967</h6></div></div></div> 5968<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_point_put</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 5969</pre> 5970<p> 5971 Construct a time_point_put facet. 5972 </p> 5973<p> 5974 <span class="bold"><strong>Effects:</strong></span> Construct a time_point_put 5975 facet. If the <code class="computeroutput"><span class="identifier">refs</span></code> 5976 argument is <code class="computeroutput"><span class="number">0</span></code> then destruction 5977 of the object is delegated to the locale, or locales, containing it. 5978 This allows the user to ignore lifetime management issues. On the other 5979 had, if <code class="computeroutput"><span class="identifier">refs</span></code> is <code class="computeroutput"><span class="number">1</span></code> then the object must be explicitly 5980 deleted; the locale will not do so. In this case, the object can be 5981 maintained across the lifetime of multiple locales. 5982 </p> 5983<p> 5984 <span class="bold"><strong>Parameters:</strong></span> 5985 </p> 5986<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 5987 <span class="bold"><strong>refs:</strong></span> references 5988 </li></ul></div> 5989</div> 5990<div class="section"> 5991<div class="titlepage"><div><div><h6 class="title"> 5992<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put1"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put1" title="Member Function put()">Member 5993 Function <code class="computeroutput"><span class="identifier">put</span><span class="special">()</span></code></a> 5994</h6></div></div></div> 5995<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 5998</pre> 5999<p> 6000 <span class="bold"><strong>Parameters:</strong></span> 6001 </p> 6002<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 6003<li class="listitem"> 6004 <span class="bold"><strong>i:</strong></span> an output stream iterator 6005 </li> 6006<li class="listitem"> 6007 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 6008 </li> 6009<li class="listitem"> 6010 <span class="bold"><strong>fill:</strong></span> the character used as filler 6011 </li> 6012<li class="listitem"> 6013 <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> 6014 </li> 6015<li class="listitem"> 6016 <span class="bold"><strong>pattern:</strong></span> begin of the formatting 6017 pattern 6018 </li> 6019<li class="listitem"> 6020 <span class="bold"><strong>pat_end:</strong></span> end of the formatting 6021 pattern 6022 </li> 6023</ul></div> 6024<p> 6025 <span class="bold"><strong>Effects:</strong></span> Steps through the sequence 6026 from <code class="computeroutput"><span class="identifier">pattern</span></code> to <code class="computeroutput"><span class="identifier">pat_end</span></code>, identifying characters that 6027 are part of a pattern sequence. Each character that is not part of 6028 a pattern sequence is written to <code class="computeroutput"><span class="identifier">s</span></code> 6029 immediately, and each pattern sequence, as it is identified, results 6030 in a call to __put_duration or __put_epoch; thus, pattern elements 6031 and other characters are interleaved in the output in the order in 6032 which they appear in the pattern. Pattern sequences are identified 6033 by converting each character <code class="computeroutput"><span class="identifier">c</span></code> 6034 to a <code class="computeroutput"><span class="keyword">char</span></code> value as if 6035 by <code class="computeroutput"><span class="identifier">ct</span><span class="special">.</span><span class="identifier">narrow</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code>, where 6036 <code class="computeroutput"><span class="identifier">ct</span></code> is a reference to 6037 <code class="computeroutput"><span class="identifier">ctype</span><span class="special"><</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>. 6042 </p> 6043<p> 6044 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately 6045 after the last character produced. 6046 </p> 6047</div> 6048<div class="section"> 6049<div class="titlepage"><div><div><h6 class="title"> 6050<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put2"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put2" title="Member Function put()">Member 6051 Function <code class="computeroutput"><span class="identifier">put</span><span class="special">()</span></code></a> 6052</h6></div></div></div> 6053<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 6055</pre> 6056<p> 6057 <span class="bold"><strong>Parameters:</strong></span> 6058 </p> 6059<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 6060<li class="listitem"> 6061 <span class="bold"><strong>i:</strong></span> an output stream iterator 6062 </li> 6063<li class="listitem"> 6064 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 6065 </li> 6066<li class="listitem"> 6067 <span class="bold"><strong>fill:</strong></span> the character used as filler 6068 </li> 6069<li class="listitem"> 6070 <span class="bold"><strong>tp:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><code class="computeroutput"><span class="identifier">time_point</span></code></a> 6071 </li> 6072<li class="listitem"> 6073 <span class="bold"><strong>tern:</strong></span> begin of the formatting 6074 pattern 6075 </li> 6076<li class="listitem"> 6077 <span class="bold"><strong>pat_end:</strong></span> end of the formatting 6078 pattern 6079 </li> 6080</ul></div> 6081<p> 6082 <span class="bold"><strong>Effects:</strong></span> Stores the time_point pattern 6083 from the __time_point_unit facet in let say <code class="computeroutput"><span class="identifier">str</span></code>. 6084 Last as if 6085 </p> 6086<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">put</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">tp</span><span class="special">,</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span> 6087</pre> 6088<p> 6089 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately 6090 after the last character produced. 6091 </p> 6092</div> 6093<div class="section"> 6094<div class="titlepage"><div><div><h6 class="title"> 6095<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put_duration"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put_duration" title="Member Function put_duration()">Member 6096 Function <code class="computeroutput"><span class="identifier">put_duration</span><span class="special">()</span></code></a> 6097</h6></div></div></div> 6098<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 6100</pre> 6101<p> 6102 <span class="bold"><strong>Parameters:</strong></span> 6103 </p> 6104<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 6105<li class="listitem"> 6106 <span class="bold"><strong>i:</strong></span> an output stream iterator 6107 </li> 6108<li class="listitem"> 6109 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 6110 </li> 6111<li class="listitem"> 6112 <span class="bold"><strong>fill:</strong></span> the character used as filler 6113 </li> 6114<li class="listitem"> 6115 <span class="bold"><strong>d:</strong></span> the <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">duration</span></code></a> 6116 </li> 6117</ul></div> 6118<p> 6119 <span class="bold"><strong>Effects:</strong></span> As if <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">put</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">ios</span><span class="special">,</span> <span class="identifier">fill</span><span class="special">,</span> <span class="identifier">d</span><span class="special">)</span></code> where facet is the <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.duration_put_hpp.duration_put" title="Template Class duration_put"><code class="computeroutput"><span class="identifier">duration_put</span></code></a><span class="special"><</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>. 6122 </p> 6123<p> 6124 <span class="bold"><strong>Returns:</strong></span> An iterator pointing immediately 6125 after the last character produced. 6126 </p> 6127</div> 6128<div class="section"> 6129<div class="titlepage"><div><div><h6 class="title"> 6130<a name="chrono.reference.io.time_point_put_hpp.time_point_put.put_epoch"></a><a class="link" href="reference.html#chrono.reference.io.time_point_put_hpp.time_point_put.put_epoch" title="Member Function put_epoch()">Member 6131 Function <code class="computeroutput"><span class="identifier">put_epoch</span><span class="special">()</span></code></a> 6132</h6></div></div></div> 6133<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 6135</pre> 6136<p> 6137 <span class="bold"><strong>Parameters:</strong></span> 6138 </p> 6139<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 6140<li class="listitem"> 6141 <span class="bold"><strong>i:</strong></span> an output stream iterator 6142 </li> 6143<li class="listitem"> 6144 <span class="bold"><strong>ios:</strong></span> a reference to a ios_base 6145 </li> 6146</ul></div> 6147<p> 6148 <span class="bold"><strong>Effects:</strong></span> As if 6149 </p> 6150<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">facet</span><span class="special">.</span><span class="keyword">template</span> <span class="identifier">get_epoch</span><span class="special"><</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> 6152</pre> 6153<p> 6154 where facet is the <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a><span class="special"><</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>. 6157 </p> 6158<p> 6159 <span class="bold"><strong>Returns:</strong></span> s, iterator pointing immediately 6160 after the last character produced. 6161 </p> 6162</div> 6163</div> 6164</div> 6165<div class="section"> 6166<div class="titlepage"><div><div><h4 class="title"> 6167<a name="chrono.reference.io.time_point_units_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp" title="Header <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> 6176</dl></div> 6177<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 6178 <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 6179 <span class="keyword">template</span> <span class="special"><</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> 6187</pre> 6188<div class="section"> 6189<div class="titlepage"><div><div><h5 class="title"> 6190<a name="chrono.reference.io.time_point_units_hpp.get_epoch_custom"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.get_epoch_custom" title="Template Function get_epoch_custom">Template 6191 Function <code class="computeroutput"><span class="identifier">get_epoch_custom</span></code></a> 6192</h5></div></div></div> 6193<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 6195</pre> 6196<p> 6197 Customization point to the epoch associated to the clock <code class="computeroutput"><span class="identifier">Clock</span></code> The default calls <code class="computeroutput"><span class="identifier">f</span><span class="special">.</span><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">Clock</span><span class="special">())</span></code>. 6198 </p> 6199<p> 6200 The user can overload this function. 6201 </p> 6202<p> 6203 <span class="bold"><strong>Returns:</strong></span> Forwards the call to the facet 6204 as if 6205 </p> 6206<pre class="programlisting"><span class="keyword">return</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">Clock</span><span class="special">());</span> 6207</pre> 6208</div> 6209<div class="section"> 6210<div class="titlepage"><div><div><h5 class="title"> 6211<a name="chrono.reference.io.time_point_units_hpp.time_point_units"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units">Template 6212 Class <code class="computeroutput"><span class="identifier">time_point_units</span></code></a> 6213</h5></div></div></div> 6214<p> 6215 <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet gives 6216 useful information about the time_point pattern, the text associated 6217 to a time_point's epoch, 6218 </p> 6219<pre class="programlisting"> <span class="keyword">template</span> <span class="special"><</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> 6226 6227 <span class="keyword">explicit</span> <span class="identifier">time_point_units</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 6228 6229 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span> 6230 <span class="keyword">template</span> <span class="special"><</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> 6232 6233 <span class="keyword">protected</span><span class="special">:</span> 6234 <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">time_point_units</span><span class="special">();</span> 6235 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6236 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6237 6238<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span> 6239 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6240 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6241 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6242 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6243<span class="preprocessor">#endif</span> 6244<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span> 6245 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6246<span class="preprocessor">#endif</span> 6247 6248 <span class="special">};</span> 6249</pre> 6250<div class="section"> 6251<div class="titlepage"><div><div><h6 class="title"> 6252<a name="chrono.reference.io.time_point_units_hpp.time_point_units.c"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.c" title="Constructor time_point_units()">Constructor 6253 <code class="computeroutput"><span class="identifier">time_point_units</span><span class="special">()</span></code></a> 6254</h6></div></div></div> 6255<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">time_point_units</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 6256</pre> 6257<p> 6258 Construct a <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet. 6259 </p> 6260<p> 6261 <span class="bold"><strong>Parameters:</strong></span> 6262 </p> 6263<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6264 <span class="bold"><strong>refs:</strong></span> references 6265 </li></ul></div> 6266<p> 6267 <span class="bold"><strong>Effects:</strong></span> Construct a <a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units" title="Template Class time_point_units"><code class="computeroutput"><span class="identifier">time_point_units</span></code></a> facet. If 6268 the <code class="computeroutput"><span class="identifier">refs</span></code> argument is 6269 <code class="computeroutput"><span class="number">0</span></code> then destruction of the 6270 object is delegated to the locale, or locales, containing it. This 6271 allows the user to ignore lifetime management issues. On the other 6272 had, if <code class="computeroutput"><span class="identifier">refsv</span> <span class="identifier">is</span> 6273 </code>1` then the object must be explicitly deleted; the locale will 6274 not do so. In this case, the object can be maintained across the lifetime 6275 of multiple locales. 6276 </p> 6277</div> 6278<div class="section"> 6279<div class="titlepage"><div><div><h6 class="title"> 6280<a name="chrono.reference.io.time_point_units_hpp.time_point_units.get_pattern"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.get_pattern" title="Member Function get_pattern()">Member 6281 Function <code class="computeroutput"><span class="identifier">get_pattern</span><span class="special">()</span></code></a> 6282</h6></div></div></div> 6283<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span><span class="number">0</span><span class="special">;</span> 6284</pre> 6285<p> 6286 <span class="bold"><strong>Returns:</strong></span> the pattern to be used by 6287 default. 6288 </p> 6289</div> 6290<div class="section"> 6291<div class="titlepage"><div><div><h6 class="title"> 6292<a name="chrono.reference.io.time_point_units_hpp.time_point_units.get_epoch"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.get_epoch" title="Member Function get_epoch()">Member 6293 Function <code class="computeroutput"><span class="identifier">get_epoch</span><span class="special">()</span></code></a> 6294</h6></div></div></div> 6295<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 6297</pre> 6298<p> 6299 <span class="bold"><strong>Returns:</strong></span> the epoch associated to the 6300 clock <code class="computeroutput"><span class="identifier">Clock</span></code> as if 6301 <code class="computeroutput"><span class="keyword">return</span> <span class="identifier">get_epoch_custom</span><span class="special"><</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> 6302 </p> 6303</div> 6304<div class="section"> 6305<div class="titlepage"><div><div><h6 class="title"> 6306<a name="chrono.reference.io.time_point_units_hpp.time_point_units.d"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.d" title="Destructor time_point_units()">Destructor 6307 <code class="computeroutput"><span class="identifier">time_point_units</span><span class="special">()</span></code></a> 6308</h6></div></div></div> 6309<pre class="programlisting"><span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">time_point_units</span><span class="special">();</span> 6310</pre> 6311<p> 6312 Destroy the facet. 6313 </p> 6314</div> 6315<div class="section"> 6316<div class="titlepage"><div><div><h6 class="title"> 6317<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_system_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_system_clock" title="Member Function do_get_epoch(system_clock)">Member 6318 Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span><span class="special">)</span></code></a> 6319</h6></div></div></div> 6320<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6321</pre> 6322<p> 6323 <span class="bold"><strong>Parameters:</strong></span> 6324 </p> 6325<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6326 <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>. 6327 </li></ul></div> 6328<p> 6329 <span class="bold"><strong>Returns:</strong></span> The epoch string associated 6330 to the <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.system_clock" title="Class system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a>. 6331 </p> 6332</div> 6333<div class="section"> 6334<div class="titlepage"><div><div><h6 class="title"> 6335<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_steady_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_steady_clock" title="Member Function do_get_epoch(steady_clock)">Member 6336 Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span><span class="special">)</span></code></a> 6337</h6></div></div></div> 6338<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6339</pre> 6340<p> 6341 <span class="bold"><strong>Parameters:</strong></span> 6342 </p> 6343<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6344 <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a>. 6345 </li></ul></div> 6346<p> 6347 <span class="bold"><strong>Returns:</strong></span> The epoch string associated 6348 to the <a class="link" href="reference.html#chrono.reference.cpp0x.system_clocks_hpp.steady_clock" title="Class steady_clock"><code class="computeroutput"><span class="identifier">steady_clock</span></code></a>. 6349 </p> 6350</div> 6351<div class="section"> 6352<div class="titlepage"><div><div><h6 class="title"> 6353<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_real_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_real_cpu_clock" title="Member Function do_get_epoch(process_real_cpu_clock)">Member 6354 Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span><span class="special">)</span></code></a> 6355</h6></div></div></div> 6356<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span> 6357 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6358<span class="preprocessor">#endif</span> 6359</pre> 6360<p> 6361 <span class="bold"><strong>Parameters:</strong></span> 6362 </p> 6363<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6364 <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>. 6365 </li></ul></div> 6366<p> 6367 <span class="bold"><strong>Returns:</strong></span> The epoch string associated 6368 to the <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>. 6369 </p> 6370</div> 6371<div class="section"> 6372<div class="titlepage"><div><div><h6 class="title"> 6373<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_user_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_user_cpu_clock" title="Member Function do_get_epoch(process_user_cpu_clock)">Member 6374 Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span><span class="special">)</span></code></a> 6375</h6></div></div></div> 6376<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span> 6377 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6378<span class="preprocessor">#endif</span> 6379</pre> 6380<p> 6381 <span class="bold"><strong>Parameters:</strong></span> 6382 </p> 6383<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6384 <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a>. 6385 </li></ul></div> 6386<p> 6387 <span class="bold"><strong>Returns:</strong></span> The epoch string associated 6388 to the process_user_cpu_clock. 6389 </p> 6390</div> 6391<div class="section"> 6392<div class="titlepage"><div><div><h6 class="title"> 6393<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_system_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_system_cpu_clock" title="Member Function do_get_epoch(process_system_cpu_clock)">Member 6394 Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span><span class="special">)</span></code></a> 6395</h6></div></div></div> 6396<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span> 6397 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6398<span class="preprocessor">#endif</span> 6399</pre> 6400<p> 6401 <span class="bold"><strong>Parameters:</strong></span> 6402 </p> 6403<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6404 <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a>. 6405 </li></ul></div> 6406<p> 6407 <span class="bold"><strong>Returns:</strong></span> The epoch string associated 6408 to the process_user_cpu_clock. 6409 </p> 6410</div> 6411<div class="section"> 6412<div class="titlepage"><div><div><h6 class="title"> 6413<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_process_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_process_cpu_clock" title="Member Function do_get_epoch(process_cpu_clock)">Member 6414 Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span><span class="special">)</span></code></a> 6415</h6></div></div></div> 6416<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span> 6417 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6418<span class="preprocessor">#endif</span> 6419</pre> 6420<p> 6421 <span class="bold"><strong>Parameters:</strong></span> 6422 </p> 6423<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6424 <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock"><code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a>. 6425 </li></ul></div> 6426<p> 6427 <span class="bold"><strong>Returns:</strong></span> The epoch string associated 6428 to the process_cpu_clock. 6429 </p> 6430</div> 6431<div class="section"> 6432<div class="titlepage"><div><div><h6 class="title"> 6433<a name="chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_thread_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units.do_get_epoch_process_thread_clock" title="Member Function do_get_epoch(thread_clock)">Member 6434 Function <code class="computeroutput"><span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span><span class="special">)</span></code></a> 6435</h6></div></div></div> 6436<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span> 6437 <span class="keyword">virtual</span> <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span><span class="special">)</span> <span class="keyword">const</span><span class="special">=</span><span class="number">0</span><span class="special">;</span> 6438<span class="preprocessor">#endif</span> 6439</pre> 6440<p> 6441 <span class="bold"><strong>Parameters:</strong></span> 6442 </p> 6443<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 6444 <span class="bold"><strong>c:</strong></span> a dummy instance of <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a>. 6445 </li></ul></div> 6446<p> 6447 <span class="bold"><strong>Returns:</strong></span> The epoch string associated 6448 to the <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a>. 6449 </p> 6450</div> 6451</div> 6452<div class="section"> 6453<div class="titlepage"><div><div><h5 class="title"> 6454<a name="chrono.reference.io.time_point_units_hpp.time_point_units_default"></a><a class="link" href="reference.html#chrono.reference.io.time_point_units_hpp.time_point_units_default" title="Template Class time_point_units_default">Template 6455 Class <code class="computeroutput"><span class="identifier">time_point_units_default</span></code></a> 6456</h5></div></div></div> 6457<pre class="programlisting"> <span class="comment">// This class is used to define the strings for the default English</span> 6458 <span class="keyword">template</span> <span class="special"><</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> 6464 6465 <span class="keyword">explicit</span> <span class="identifier">time_point_units_default</span><span class="special">(</span><span class="identifier">size_t</span> <span class="identifier">refs</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span> 6466 <span class="special">~</span><span class="identifier">time_point_units_default</span><span class="special">();</span> 6467 6468 <span class="comment">/** 6469 * __returns the default pattern "%d%e". 6470 */</span> 6471 <span class="identifier">string_type</span> <span class="identifier">get_pattern</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 6472 6473 <span class="keyword">protected</span><span class="special">:</span> 6474 <span class="comment">/** 6475 * [param c a dummy instance of __system_clock. 6476 * __returns The epoch string returned by `clock_string<system_clock,CharT>::since()`. 6477 */</span> 6478 <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">system_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 6479 <span class="comment">/** 6480 * [param c a dummy instance of __steady_clock. 6481 * __returns The epoch string returned by `clock_string<steady_clock,CharT>::since()`. 6482 */</span> 6483 <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">steady_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 6484<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span><span class="special">)</span> 6485 <span class="comment">/** 6486 * [param c a dummy instance of __process_real_cpu_clock. 6487 * __returns The epoch string returned by `clock_string<process_real_cpu_clock,CharT>::since()`. 6488 */</span> 6489 <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_real_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 6490 <span class="comment">/** 6491 * [param c a dummy instance of __process_user_cpu_clock. 6492 * __returns The epoch string returned by `clock_string<process_user_cpu_clock,CharT>::since()`. 6493 */</span> 6494 <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_user_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 6495 <span class="comment">/** 6496 * [param c a dummy instance of __process_system_cpu_clock. 6497 * __returns The epoch string returned by `clock_string<process_system_cpu_clock,CharT>::since()`. 6498 */</span> 6499 <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_system_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 6500 <span class="comment">/** 6501 * [param c a dummy instance of __process_cpu_clock. 6502 * __returns The epoch string returned by `clock_string<process_cpu_clock,CharT>::since()`. 6503 */</span> 6504 <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">process_cpu_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 6505 6506<span class="preprocessor">#endif</span> 6507<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span> 6508 <span class="comment">/** 6509 * [param c a dummy instance of __thread_clock. 6510 * __returns The epoch string returned by `clock_string<thread_clock,CharT>::since()`. 6511 */</span> 6512 <span class="identifier">string_type</span> <span class="identifier">do_get_epoch</span><span class="special">(</span><span class="identifier">thread_clock</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 6513<span class="preprocessor">#endif</span> 6514 6515 <span class="special">};</span> 6516</pre> 6517</div> 6518</div> 6519<div class="section"> 6520<div class="titlepage"><div><div><h4 class="title"> 6521<a name="chrono.reference.io.time_point_io_hpp"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp" title="Header <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> 6528</dl></div> 6529<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 6530<span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 6531 6532 6533 <span class="comment">// manipulators</span> 6534 6535 <span class="identifier">unspecified</span> <a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip.time_fmt1" title="Non Member Function time_fmt(timezone)"><code class="computeroutput"><span class="identifier">time_fmt</span></code></a><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">);</span> 6536 <span class="keyword">template</span><span class="special"><</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> 6540 6541 <span class="comment">// i/o state savers</span> 6542 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> 6548 6549 <span class="keyword">explicit</span> <a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.ioss.timezone_io_saver.c1" title="Constructor timezone_io_saver(state_type&)"><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> 6554 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> 6559 6560 <span class="keyword">explicit</span> <span class="identifier">time_fmt_io_saver</span><span class="special">(</span><span class="identifier">state_type</span> <span class="special">&</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> 6565 6566 <span class="comment">// system_clock I/O</span> 6567 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> 6572 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> 6577 6578 <span class="comment">// Other Clocks I/O</span> 6579 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> 6584 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> 6589 6590<span class="special">}</span> 6591<span class="special">}</span> 6592</pre> 6593<div class="section"> 6594<div class="titlepage"><div><div><h5 class="title"> 6595<a name="chrono.reference.io.time_point_io_hpp.manip"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.manip" title="I/O Manipulators">I/O 6596 Manipulators</a> 6597</h5></div></div></div> 6598<div class="section"> 6599<div class="titlepage"><div><div><h6 class="title"> 6600<a name="chrono.reference.io.time_point_io_hpp.manip.time_fmt1"></a>Non Member Function <code class="computeroutput"><span class="identifier">time_fmt</span><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a><span class="special">)</span></code> 6601 </h6></div></div></div> 6602<pre class="programlisting"><span class="identifier">unspecified</span> <span class="identifier">time_fmt</span><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> <span class="identifier">tz</span><span class="special">);</span> 6603</pre> 6604<p> 6605 <span class="bold"><strong>Returns:</strong></span>: An unspecified object that 6606 when streamed to a <code class="computeroutput"><span class="identifier">basic_ostream</span><span class="special"><</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> 6607 will have the effects of: 6608 </p> 6609<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_timezone" title="Non Member Function set_timezone(std::ios_base&,duration_style)"><code class="computeroutput"><span class="identifier">set_timezone</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">tz</span><span class="special">);</span> 6610</pre> 6611</div> 6612<div class="section"> 6613<div class="titlepage"><div><div><h6 class="title"> 6614<a name="chrono.reference.io.time_point_io_hpp.manip.time_fmt2"></a>Non Member Function <code class="computeroutput"><span class="identifier">time_fmt</span><span class="special">(</span><a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a><span class="special">,</span> 6615 <span class="identifier">string</span><span class="special">)</span></code> 6616 </h6></div></div></div> 6617<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 6618 <span class="identifier">unspecified</span> <span class="identifier">time_fmt</span><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">,</span> <span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span> 6619<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 6620 <span class="identifier">unspecified</span> <span class="identifier">time_fmt</span><span class="special">(</span><span class="identifier">timezone</span> <span class="identifier">tz</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span> <span class="identifier">f</span><span class="special">);</span> 6621</pre> 6622<p> 6623 <span class="bold"><strong>Returns:</strong></span>: An unspecified object that 6624 when streamed to a <code class="computeroutput"><span class="identifier">basic_ostream</span><span class="special"><</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> 6625 will have the effects of: 6626 </p> 6627<pre class="programlisting"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_timezone" title="Non Member Function set_timezone(std::ios_base&,duration_style)"><code class="computeroutput"><span class="identifier">set_timezone</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">tz</span><span class="special">);</span> 6628<a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.set_time_fmt" title="Non Member Function set_time_fmt(std::ios_base&, 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> 6629</pre> 6630</div> 6631</div> 6632<div class="section"> 6633<div class="titlepage"><div><div><h5 class="title"> 6634<a name="chrono.reference.io.time_point_io_hpp.streams"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams" title="I/O Streams Operations">I/O 6635 Streams Operations</a> 6636</h5></div></div></div> 6637<div class="section"> 6638<div class="titlepage"><div><div><h6 class="title"> 6639<a name="chrono.reference.io.time_point_io_hpp.streams.system_clock"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.system_clock" title="system_clock"><code class="computeroutput"><span class="identifier">system_clock</span></code></a> 6640</h6></div></div></div> 6641<div class="section"> 6642<div class="titlepage"><div><div><h6 class="title"> 6643<a name="chrono.reference.io.time_point_io_hpp.streams.system_clock.op_out"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.system_clock.op_out" title="Non Member Function operator<<()">Non 6644 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code></a> 6645</h6></div></div></div> 6646<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> 6647 <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> 6648 <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> 6649 <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> 6650</pre> 6651<p> 6652 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted 6653 output function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code> 6654 object, if the <code class="computeroutput"><span class="identifier">sentry</span></code> 6655 converts to <code class="computeroutput"><span class="keyword">true</span></code>, sets 6656 a local variable <code class="computeroutput"><span class="identifier">tz</span></code> 6657 of type <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> to <code class="computeroutput"><span class="identifier">get_timezone</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span></code>. 6658 Additionally the format string obtained with <code class="computeroutput"><a class="link" href="reference.html#chrono.reference.io.ios_state_hpp.sag.get_time_fmt" title="Non Member Function get_time_fmt(std::ios_base &)"><code class="computeroutput"><span class="identifier">get_time_fmt</span></code></a><span class="special">()</span></code> 6659 is recorded as a pair of <code class="computeroutput"><span class="keyword">const</span> 6660 <span class="identifier">CharT</span><span class="special">*</span></code>. 6661 If the stream has no time_punct facet, then this pair of <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">CharT</span><span class="special">*</span></code> that represent an empty range. 6662 </p> 6663<p> 6664 Next <code class="computeroutput"><span class="identifier">tp</span></code> is converted 6665 to a <code class="computeroutput"><span class="identifier">time_t</span></code>, and 6666 this <code class="computeroutput"><span class="identifier">time_t</span></code> is converted 6667 to a <code class="computeroutput"><span class="identifier">tm</span></code>. The conversion 6668 to <code class="computeroutput"><span class="identifier">tm</span></code> use <code class="computeroutput"><span class="identifier">gmtime</span></code> (when available) if the 6669 timezone is <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">utc</span></code></a>, else it use localtime 6670 (if available). 6671 </p> 6672<p> 6673 Using the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_put</span></code> facet stored in <code class="computeroutput"><span class="identifier">os</span></code>, this inserter writes characters 6674 to the stream using the <code class="computeroutput"><span class="identifier">tm</span></code> 6675 and the formatting string stored in the <code class="computeroutput"><span class="identifier">time_punct</span></code> 6676 facet, unless that facet was missing, or unless it provided an empty 6677 string. 6678 </p> 6679<p> 6680 If the formatting string is empty, then output as follows: 6681 </p> 6682<p> 6683 First output <code class="computeroutput"><span class="identifier">tm</span></code> using 6684 <code class="computeroutput"><span class="string">"%F %H:%M:"</span></code> 6685 </p> 6686<p> 6687 Next output a <code class="computeroutput"><span class="keyword">double</span></code> 6688 representing the number of seconds stored in the <code class="computeroutput"><span class="identifier">tm</span></code> 6689 plus the fractional seconds represented in <code class="computeroutput"><span class="identifier">tp</span></code>. 6690 The format shall be <code class="computeroutput"><span class="identifier">ios</span><span class="special">::</span><span class="identifier">fixed</span></code> 6691 and the precision shall be sufficient to represent <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">duration</span></code> exactly (e.g. if <code class="computeroutput"><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">period</span></code> is micro, the precision 6692 should be sufficient to output six digits following the decimal point). 6693 If the number of seconds is less than <code class="computeroutput"><span class="number">10</span></code>, 6694 the output shall be prefixed by <code class="computeroutput"><span class="char">'0'</span></code>. 6695 </p> 6696<p> 6697 Finally if <code class="computeroutput"><span class="identifier">tz</span></code> is 6698 <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">local</span></code></a>, output the <code class="computeroutput"><span class="identifier">tm</span></code> using the pattern " %z". 6699 Else append the sequence " +0000" to the stream. 6700 </p> 6701<p> 6702 If any step fails, calls <code class="computeroutput"><span class="identifier">os</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span> 6703 <span class="special">|</span> <span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">)</span></code>. 6704 </p> 6705<p> 6706 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code> 6707 </p> 6708</div> 6709<div class="section"> 6710<div class="titlepage"><div><div><h6 class="title"> 6711<a name="chrono.reference.io.time_point_io_hpp.streams.system_clock.op_in"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.system_clock.op_in" title="Non Member Function operator>>()">Non 6712 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">>>()</span></code></a> 6713</h6></div></div></div> 6714<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> 6715 <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> 6716 <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> 6717 <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> 6718</pre> 6719<p> 6720 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted 6721 input function. After constructing a sentry object, if the sentry 6722 converts to true, obtains a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_get</span></code> 6723 facet from <code class="computeroutput"><span class="identifier">is</span></code>, and 6724 obtains a formatting string in the same manner as described for insertion 6725 operator. Extract a <code class="computeroutput"><span class="identifier">tm</span></code> 6726 using the supplied formatting string, or if empty, defaulted as described 6727 for the insertion operator. Note that extraction does not use the 6728 <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> data stored in 6729 the <code class="computeroutput"><span class="identifier">is</span></code> for the defaulted 6730 string as the <a class="link" href="reference.html#chrono.reference.io.timezone_hpp.timezone" title="Scoped enum timezone"><code class="computeroutput"><span class="identifier">timezone</span></code></a> information is 6731 stored in the stream. 6732 </p> 6733<p> 6734 Any <code class="computeroutput"><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">system_clock</span><span class="special">,</span> 6735 <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration" title="Class Template duration<>"><code class="computeroutput"><span class="identifier">Duration</span></code></a><span class="special">></span></code> 6736 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> 6737 <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>, 6738 excepting any precision that did not get inserted. 6739 </p> 6740<p> 6741 <span class="bold"><strong>Example:</strong></span> 6742 </p> 6743<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">test</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">time_point</span> <span class="identifier">tp</span><span class="special">)</span> 6744<span class="special">{</span> 6745 <span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span> <span class="identifier">s</span><span class="special">;</span> 6746 <span class="identifier">s</span> <span class="special"><<</span> <span class="identifier">tp</span><span class="special">;</span> 6747 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">system_clock</span><span class="special">::</span><span class="identifier">time_point</span> <span class="identifier">tp2</span><span class="special">;</span> 6748 <span class="identifier">s</span> <span class="special">>></span> <span class="identifier">tp2</span><span class="special">;</span> 6749 <span class="identifier">assert</span><span class="special">(</span><span class="identifier">tp</span> <span class="special">==</span> <span class="identifier">tp2</span><span class="special">);</span> 6750<span class="special">}</span> 6751</pre> 6752<p> 6753 <span class="bold"><strong>Returns:</strong></span> is 6754 </p> 6755</div> 6756</div> 6757<div class="section"> 6758<div class="titlepage"><div><div><h6 class="title"> 6759<a name="chrono.reference.io.time_point_io_hpp.streams.other_clocks"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.other_clocks" title="Other Clocks">Other 6760 Clocks</a> 6761</h6></div></div></div> 6762<div class="section"> 6763<div class="titlepage"><div><div><h6 class="title"> 6764<a name="chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_out"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_out" title="Non Member Function operator<<()">Non 6765 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code></a> 6766</h6></div></div></div> 6767<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> 6768 <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> 6769 <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> 6770 <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> 6771</pre> 6772<p> 6773 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted 6774 output function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code> 6775 object, if the <code class="computeroutput"><span class="identifier">sentry</span></code> 6776 converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls 6777 to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">put</span><span class="special">(</span><span class="identifier">os</span><span class="special">,</span><span class="identifier">os</span><span class="special">,</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">fill</span><span class="special">(),</span><span class="identifier">tp</span><span class="special">)</span></code> 6778 where <code class="computeroutput"><span class="identifier">facet</span></code> is the 6779 <code class="computeroutput"><span class="identifier">time_point_put</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code> 6780 facet associated to <code class="computeroutput"><span class="identifier">os</span></code> 6781 or a new created instance of the default <code class="computeroutput"><span class="identifier">time_point_put</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code> facet. 6782 </p> 6783<p> 6784 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">os</span></code>. 6785 </p> 6786<p> 6787 <span class="bold"><strong>Example:</strong></span> 6788 </p> 6789<pre class="programlisting"><span class="number">22644271279698</span> <span class="identifier">nanoseconds</span> <span class="identifier">since</span> <span class="identifier">boot</span> 6790</pre> 6791</div> 6792<div class="section"> 6793<div class="titlepage"><div><div><h6 class="title"> 6794<a name="chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_in"></a><a class="link" href="reference.html#chrono.reference.io.time_point_io_hpp.streams.other_clocks.op_in" title="Non Member Function operator>>()">Non 6795 Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">>>()</span></code></a> 6796</h6></div></div></div> 6797<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> 6798 <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> 6799 <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> 6800 <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> 6801</pre> 6802<p> 6803 Extracts <code class="computeroutput"><span class="identifier">tp</span></code> from 6804 the stream <code class="computeroutput"><span class="identifier">is</span></code>. 6805 </p> 6806<p> 6807 <span class="bold"><strong>Effects:</strong></span> Behaves as a formatted 6808 input function. After constructing a <code class="computeroutput"><span class="identifier">sentry</span></code> 6809 object, if the <code class="computeroutput"><span class="identifier">sentry</span></code> 6810 converts to <code class="computeroutput"><span class="keyword">true</span></code>, calls 6811 to <code class="computeroutput"><span class="identifier">facet</span><span class="special">.</span><span class="identifier">get</span><span class="special">(</span><span class="identifier">is</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">,</span> 6812 <span class="identifier">Traits</span><span class="special">>(),</span> 6813 <span class="identifier">is</span><span class="special">,</span> 6814 <span class="identifier">err</span><span class="special">,</span> 6815 <span class="identifier">tp</span><span class="special">)</span></code> 6816 where <code class="computeroutput"><span class="identifier">facet</span></code> is the 6817 <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code> 6818 facet associated to <code class="computeroutput"><span class="identifier">is</span></code> 6819 or a new created instance of the default <code class="computeroutput"><span class="identifier">time_point_get</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span></code> facet. 6820 </p> 6821<p> 6822 If any step fails, calls <code class="computeroutput"><span class="identifier">os</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failbit</span> 6823 <span class="special">|</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">)</span></code>. 6824 </p> 6825<p> 6826 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code>. 6827 </p> 6828</div> 6829</div> 6830</div> 6831</div> 6832</div> 6833<div class="section"> 6834<div class="titlepage"><div><div><h3 class="title"> 6835<a name="chrono.reference.round"></a><a class="link" href="reference.html#chrono.reference.round" title="Chrono Rounding Utilities">Chrono Rounding Utilities</a> 6836</h3></div></div></div> 6837<div class="toc"><dl class="toc"> 6838<dt><span class="section"><a href="reference.html#chrono.reference.round.floor_hpp">Header <code class="computeroutput"><span class="special"><</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> 6839<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> 6840<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> 6841</dl></div> 6842<div class="section"> 6843<div class="titlepage"><div><div><h4 class="title"> 6844<a name="chrono.reference.round.floor_hpp"></a><a class="link" href="reference.html#chrono.reference.round.floor_hpp" title="Header <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> 6845</h4></div></div></div> 6846<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 6847 <span class="keyword">template</span> <span class="special"><</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> 6848 <span class="identifier">To</span> <span class="identifier">floor</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</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> 6849<span class="special">}</span> <span class="special">}</span> 6850</pre> 6851<p> 6852 This function round down the given parameter. 6853 </p> 6854</div> 6855<div class="section"> 6856<div class="titlepage"><div><div><h4 class="title"> 6857<a name="chrono.reference.round.round_hpp"></a><a class="link" href="reference.html#chrono.reference.round.round_hpp" title="Header <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> 6858</h4></div></div></div> 6859<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 6860 <span class="keyword">template</span> <span class="special"><</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> 6861 <span class="identifier">To</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</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> 6862<span class="special">}</span> <span class="special">}</span> 6863</pre> 6864<p> 6865 This function round to nearest, to even on tie the given parameter. 6866 </p> 6867</div> 6868<div class="section"> 6869<div class="titlepage"><div><div><h4 class="title"> 6870<a name="chrono.reference.round.ceil_hpp"></a><a class="link" href="reference.html#chrono.reference.round.ceil_hpp" title="Header <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> 6871</h4></div></div></div> 6872<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 6873 <span class="keyword">template</span> <span class="special"><</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> 6874 <span class="identifier">To</span> <span class="identifier">ceil</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">duration</span><span class="special"><</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> 6875<span class="special">}</span> <span class="special">}</span> 6876</pre> 6877<p> 6878 This function round up the given parameter. 6879 </p> 6880</div> 6881</div> 6882<div class="section"> 6883<div class="titlepage"><div><div><h3 class="title"> 6884<a name="chrono.reference.other_clocks"></a><a class="link" href="reference.html#chrono.reference.other_clocks" title="Other Clocks">Other Clocks</a> 6885</h3></div></div></div> 6886<div class="toc"><dl class="toc"> 6887<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp">Header 6888 <code class="computeroutput"><span class="special"><</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> 6889<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp">Header 6890 <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> 6891</dl></div> 6892<div class="section"> 6893<div class="titlepage"><div><div><h4 class="title"> 6894<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp" title="Header <boost/chrono/process_cpu_clocks.hpp>">Header 6895 <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> 6896</h4></div></div></div> 6897<div class="toc"><dl class="toc"> 6898<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.BOOST_CHRONO_HAS_PROCESS_CLOCKS">Macro 6899 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span> 6900 </code></a></span></dt> 6901<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock">Class 6902 <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a></span></dt> 6903<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock">Class 6904 <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a></span></dt> 6905<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock">Class 6906 <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a></span></dt> 6907<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock">Class 6908 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a></span></dt> 6909<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times">Template 6910 Class <code class="computeroutput"><span class="identifier">process_times</span></code></a></span></dt> 6911<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_io"><code class="computeroutput"><span class="identifier">process_times</span></code> Input/Output</a></span></dt> 6912<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special"><></span></code></a></span></dt> 6913<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_real_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_real_cpu_clock</span><span class="special">></span></code> 6914 Specialization</a></span></dt> 6915<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_user_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_user_cpu_clock</span><span class="special">></span></code> 6916 Specialization</a></span></dt> 6917<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_system_cpu_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">process_system_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_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> 6920 Specialization</a></span></dt> 6921<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_numeric_limits"><code class="computeroutput"><span class="identifier">numeric_limits</span></code> Specialization for <code class="computeroutput"><span class="identifier">process_times</span><span class="special"><></span></code></a></span></dt> 6922</dl></div> 6923<p> 6924 Knowing how long a program takes to execute is useful in both test and 6925 production environments. It is also helpful if such timing information 6926 is broken down into real (wall clock) time, CPU time spent by the user, 6927 and CPU time spent by the operating system servicing user requests. 6928 </p> 6929<p> 6930 Process clocks don't include the time spent by the child process. 6931 </p> 6932<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span> 6933 6934<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 6935 6936 <span class="keyword">class</span> <span class="identifier">process_real_cpu_clock</span><span class="special">;</span> 6937 <span class="keyword">class</span> <span class="identifier">process_user_cpu_clock</span><span class="special">;</span> 6938 <span class="keyword">class</span> <span class="identifier">process_system_cpu_clock</span><span class="special">;</span> 6939 <span class="keyword">class</span> <span class="identifier">process_cpu_clock</span><span class="special">;</span> 6940 6941 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">></span> 6942 <span class="keyword">struct</span> <span class="identifier">process_times</span><span class="special">;</span> 6943 <span class="keyword">template</span> <span class="special"><</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> 6944 <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> 6945 <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> 6946 <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> 6947 6948 <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> 6949 <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> 6950 <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> 6951 <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 6953 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></span> 6954 <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> 6955 6956 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 6957 <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> 6958 <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> 6959 <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> 6960 <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> 6961 6962<span class="special">}</span> <span class="special">}</span> 6963<span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span> 6964 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Rep</span><span class="special">></span> 6965 <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> 6966<span class="special">}</span> 6967</pre> 6968<div class="section"> 6969<div class="titlepage"><div><div><h5 class="title"> 6970<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.BOOST_CHRONO_HAS_PROCESS_CLOCKS"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.BOOST_CHRONO_HAS_PROCESS_CLOCKS" title="Macro BOOST_CHRONO_HAS_PROCESS_CLOCKS">Macro 6971 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_PROCESS_CLOCKS</span> 6972 </code></a> 6973</h5></div></div></div> 6974<p> 6975 This macro is defined if the platform supports process clocks. 6976 </p> 6977</div> 6978<div class="section"> 6979<div class="titlepage"><div><div><h5 class="title"> 6980<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock">Class 6981 <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> 6982</h5></div></div></div> 6983<p> 6984 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> satisfy 6985 the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> 6986 requirements. 6987 </p> 6988<p> 6989 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_real_cpu_clock" title="Class process_real_cpu_clock"><code class="computeroutput"><span class="identifier">process_real_cpu_clock</span></code></a> class 6990 provides access to the real process wall-clock steady clock, i.e. the 6991 real CPU-time clock of the calling process. The process relative current 6992 time can be obtained by calling <code class="computeroutput"><span class="identifier">process_real_cpu_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. 6993 </p> 6994<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_real_cpu_clock</span> <span class="special">{</span> 6995<span class="keyword">public</span><span class="special">:</span> 6996 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a> <span class="identifier">duration</span><span class="special">;</span> 6997 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span> 6998 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span> 6999 <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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> 7000 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span> 7001 7002 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 7003 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <span class="identifier">ec</span> <span class="special">);</span> 7004<span class="special">};</span> 7005</pre> 7006</div> 7007<div class="section"> 7008<div class="titlepage"><div><div><h5 class="title"> 7009<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock">Class 7010 <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> 7011</h5></div></div></div> 7012<p> 7013 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> satisfy 7014 the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> 7015 requirements. 7016 </p> 7017<p> 7018 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_user_cpu_clock" title="Class process_user_cpu_clock"><code class="computeroutput"><span class="identifier">process_user_cpu_clock</span></code></a> class 7019 provides access to the user CPU-time steady clock of the calling process. 7020 The process relative user current time can be obtained by calling <code class="computeroutput"><span class="identifier">process_user_cpu_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. 7021 </p> 7022<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_user_cpu_clock</span> <span class="special">{</span> 7023<span class="keyword">public</span><span class="special">:</span> 7024 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a> <span class="identifier">duration</span><span class="special">;</span> 7025 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span> 7026 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span> 7027 <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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> 7028 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span> 7029 7030 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 7031 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <span class="identifier">ec</span> <span class="special">);</span> 7032<span class="special">};</span> 7033</pre> 7034</div> 7035<div class="section"> 7036<div class="titlepage"><div><div><h5 class="title"> 7037<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock">Class 7038 <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> 7039</h5></div></div></div> 7040<p> 7041 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> satisfy 7042 the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> 7043 requirements. 7044 </p> 7045<p> 7046 <a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_system_cpu_clock" title="Class process_system_cpu_clock"><code class="computeroutput"><span class="identifier">process_system_cpu_clock</span></code></a> class 7047 provides access to the system CPU-time steady clock of the calling process. 7048 The process relative system current time can be obtained by calling 7049 <code class="computeroutput"><span class="identifier">process_system_cpu_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. 7050 </p> 7051<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_system_cpu_clock</span> <span class="special">{</span> 7052<span class="keyword">public</span><span class="special">:</span> 7053 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a> <span class="identifier">duration</span><span class="special">;</span> 7054 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span> 7055 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span> 7056 <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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> 7057 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span> 7058 7059 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 7060 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <span class="identifier">ec</span> <span class="special">);</span> 7061<span class="special">};</span> 7062</pre> 7063</div> 7064<div class="section"> 7065<div class="titlepage"><div><div><h5 class="title"> 7066<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.process_cpu_clock" title="Class process_cpu_clock">Class 7067 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code></a> 7068</h5></div></div></div> 7069<p> 7070 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code> can 7071 be considered as a <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</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>. 7072 </p> 7073<p> 7074 <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code> provides 7075 a thin wrapper around the operating system's process time API. For POSIX-like 7076 systems, that's the times() function, while for Windows, it's the <code class="computeroutput"><span class="identifier">GetProcessTimes</span><span class="special">()</span></code> 7077 function. 7078 </p> 7079<p> 7080 The process relative real, user and system current time can be obtained 7081 at once by calling <code class="computeroutput"><span class="identifier">process_clocks</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. 7082 </p> 7083<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">process_cpu_clock</span> 7084<span class="special">{</span> 7085<span class="keyword">public</span><span class="special">:</span> 7086 <span class="keyword">typedef</span> <span class="identifier">process_times</span><span class="special"><</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> 7087 7088 <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> 7089 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span> 7090 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span> 7091 <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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> 7092 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span> 7093 7094 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 7095 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <span class="identifier">ec</span> <span class="special">);</span> 7096<span class="special">};</span> 7097</pre> 7098</div> 7099<div class="section"> 7100<div class="titlepage"><div><div><h5 class="title"> 7101<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times" title="Template Class process_times">Template 7102 Class <code class="computeroutput"><span class="identifier">process_times</span></code></a> 7103</h5></div></div></div> 7104<p> 7105 This class is the representation of the <code class="computeroutput"><span class="identifier">process_cpu_clock</span><span class="special">::</span><span class="identifier">duration</span></code> 7106 class. As such it needs to implements the arithmetic operators. 7107 </p> 7108<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep</span><span class="special">></span> 7109<span class="keyword">struct</span> <span class="identifier">process_times</span> <span class="special">:</span> <span class="identifier">arithmetic</span><span class="special"><</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">>,</span> 7110 <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> 7111 <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> 7112<span class="special">{</span> 7113 <span class="identifier">Rep</span> <span class="identifier">real</span><span class="special">;</span> <span class="comment">// real (i.e wall clock) time</span> 7114 <span class="identifier">Rep</span> <span class="identifier">user</span><span class="special">;</span> <span class="comment">// user cpu time</span> 7115 <span class="identifier">Rep</span> <span class="identifier">system</span><span class="special">;</span> <span class="comment">// system cpu time</span> 7116 7117 <span class="identifier">times</span><span class="special">();</span> 7118 <span class="identifier">times</span><span class="special">(</span> 7119 <span class="identifier">process_real_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">r</span><span class="special">,</span> 7120 <span class="identifier">process_user_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">u</span><span class="special">,</span> 7121 <span class="identifier">process_system_cpu_clock</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">s</span><span class="special">);</span> 7122 7123 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">></span> 7124 <span class="keyword">explicit</span> <span class="identifier">process_times</span><span class="special">(</span> 7125 <span class="identifier">Rep2</span> <span class="identifier">r</span><span class="special">);</span> 7126 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">></span> 7127 <span class="keyword">explicit</span> <span class="identifier">process_times</span><span class="special">(</span> 7128 <span class="identifier">process_times</span><span class="special"><</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> 7129 <span class="keyword">operator</span> <span class="identifier">rep</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 7130 7131 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 7132 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Rep2</span><span class="special">></span> 7133 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">process_times</span><span class="special"><</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> 7134 7135 <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 7136 <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 7137 <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 7138 <span class="identifier">times</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="identifier">process_times</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 7139 <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> 7140<span class="special">};</span> 7141</pre> 7142</div> 7143<div class="section"> 7144<div class="titlepage"><div><div><h5 class="title"> 7145<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times_io"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_io" title="process_times Input/Output"><code class="computeroutput"><span class="identifier">process_times</span></code> Input/Output</a> 7146</h5></div></div></div> 7147<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 7148<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> 7149<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> 7150 <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> 7151</pre> 7152<p> 7153 <span class="bold"><strong>Effects:</strong></span> Output each part separated 7154 by ';' and surrounded by '{', '}'. 7155 </p> 7156<p> 7157 <span class="bold"><strong>Throws:</strong></span> None. 7158 </p> 7159<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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> 7160<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> 7161<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> 7162 <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> 7163</pre> 7164<p> 7165 <span class="bold"><strong>Effects:</strong></span> overrides the value of rhs 7166 if the input stream has the format "{r;u;s}". Otherwise, set 7167 the input stream state as failbit | eofbit. 7168 </p> 7169<p> 7170 <span class="bold"><strong>Throws:</strong></span> None. 7171 </p> 7172</div> 7173<div class="section"> 7174<div class="titlepage"><div><div><h5 class="title"> 7175<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times_duration_values"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_duration_values" title="duration_values Specialization for process_times<>"><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> 7176</h5></div></div></div> 7177<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> 7178<span class="keyword">struct</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.traits.duration_values" title="Class Template duration_values"><code class="computeroutput"><span class="identifier">duration_values</span></code></a><span class="special"><</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="special">></span> 7179<span class="special">{</span> 7180 <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> 7181 <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> 7182 <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> 7183<span class="special">};</span> 7184</pre> 7185<p> 7186 The <code class="computeroutput"><span class="identifier">times</span></code> specific functions 7187 <code class="computeroutput"><span class="identifier">zero</span><span class="special">()</span></code>, 7188 <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code> 7189 and <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code> 7190 uses the relative functions on the representation of each component. 7191 </p> 7192</div> 7193<div class="section"> 7194<div class="titlepage"><div><div><h5 class="title"> 7195<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_real_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_real_cpu_clock" title="clock_string<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> 7196 Specialization</a> 7197</h5></div></div></div> 7198<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> 7199<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> 7200<span class="special">{</span> 7201 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span> 7202 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span> 7203<span class="special">};</span> 7204</pre> 7205<p> 7206 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code> 7207 returns "process_real_cpu_clock". 7208 </p> 7209<p> 7210 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code> 7211 returns " since process start-up" 7212 </p> 7213</div> 7214<div class="section"> 7215<div class="titlepage"><div><div><h5 class="title"> 7216<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_user_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_user_cpu_clock" title="clock_string<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> 7217 Specialization</a> 7218</h5></div></div></div> 7219<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> 7220<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> 7221<span class="special">{</span> 7222 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span> 7223 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span> 7224<span class="special">};</span> 7225</pre> 7226<p> 7227 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code> 7228 returns "process_user_cpu_clock". 7229 </p> 7230<p> 7231 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code> 7232 returns " since process start-up" 7233 </p> 7234</div> 7235<div class="section"> 7236<div class="titlepage"><div><div><h5 class="title"> 7237<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_system_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_system_cpu_clock" title="clock_string<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> 7238 Specialization</a> 7239</h5></div></div></div> 7240<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> 7241<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> 7242<span class="special">{</span> 7243 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span> 7244 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span> 7245<span class="special">};</span> 7246</pre> 7247<p> 7248 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code> 7249 returns "process_system_cpu_clock". 7250 </p> 7251<p> 7252 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code> 7253 returns " since process start-up" 7254 </p> 7255</div> 7256<div class="section"> 7257<div class="titlepage"><div><div><h5 class="title"> 7258<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_cpu_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.clock_string_process_cpu_clock" title="clock_string<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> 7259 Specialization</a> 7260</h5></div></div></div> 7261<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> 7262<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> 7263<span class="special">{</span> 7264 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span> 7265 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span> 7266<span class="special">};</span> 7267</pre> 7268<p> 7269 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code> 7270 returns "process_cpu_clock". 7271 </p> 7272<p> 7273 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code> 7274 returns " since process start-up" 7275 </p> 7276</div> 7277<div class="section"> 7278<div class="titlepage"><div><div><h5 class="title"> 7279<a name="chrono.reference.other_clocks.process_cpu_clocks_hpp.times_numeric_limits"></a><a class="link" href="reference.html#chrono.reference.other_clocks.process_cpu_clocks_hpp.times_numeric_limits" title="numeric_limits Specialization for process_times<>"><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> 7280</h5></div></div></div> 7281<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span> 7282 <span class="keyword">template</span> <span class="special"><></span> 7283 <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> 7284 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span> <span class="identifier">Res</span><span class="special">;</span> 7285 7286 <span class="keyword">public</span><span class="special">:</span> 7287 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_specialized</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span> 7288 <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">min</span><span class="special">();</span> 7289 <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">max</span><span class="special">();</span> 7290 <span class="keyword">static</span> <span class="identifier">Res</span> <span class="identifier">lowest</span><span class="special">();</span> 7291 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">;</span> 7292 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits10</span><span class="special">;</span> 7293 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_signed</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">;</span> 7294 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_integer</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span> 7295 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_exact</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span> 7296 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">radix</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> 7297 <span class="special">};</span> 7298<span class="special">}</span> 7299</pre> 7300<p> 7301 The <code class="computeroutput"><span class="identifier">process_times</span><span class="special"><</span><span class="identifier">Rep</span><span class="special">></span></code> 7302 specialization functions <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code>, <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">lowest</span><span class="special">()</span></code> uses the relative functions on the 7303 representation of each component. 7304 </p> 7305<p> 7306 Notes 7307 </p> 7308<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 7309<li class="listitem"> 7310 <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code> 7311 returns the tuple of mins. 7312 </li> 7313<li class="listitem"> 7314 <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code> 7315 returns the tuple of maxs. 7316 </li> 7317<li class="listitem"> 7318 <code class="computeroutput"><span class="identifier">lowest</span><span class="special">()</span></code> 7319 returns the tuple of lowests. 7320 </li> 7321<li class="listitem"> 7322 <code class="computeroutput"><span class="identifier">digits</span></code> is the sum 7323 of (binary) digits. 7324 </li> 7325<li class="listitem"> 7326 <code class="computeroutput"><span class="identifier">digits10</span></code> is the sum 7327 of digits10s. 7328 </li> 7329</ul></div> 7330</div> 7331</div> 7332<div class="section"> 7333<div class="titlepage"><div><div><h4 class="title"> 7334<a name="chrono.reference.other_clocks.thread_clock_hpp"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp" title="Header <boost/chrono/thread_clock.hpp>">Header 7335 <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> 7336</h4></div></div></div> 7337<div class="toc"><dl class="toc"> 7338<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_HAS_THREAD_CLOCK">Macro 7339 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span></code></a></span></dt> 7340<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_THREAD_CLOCK_IS_STEADY">Macro 7341 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span></code></a></span></dt> 7342<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock">Class 7343 <code class="computeroutput"><span class="identifier">thread_clock</span></code></a></span></dt> 7344<dt><span class="section"><a href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.clock_string_thread_clock"><code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><</span><span class="identifier">thread_clock</span><span class="special">></span></code> 7345 Specialization</a></span></dt> 7346</dl></div> 7347<p> 7348 Knowing the time a thread takes to execute is useful in both test and production 7349 environments. 7350 </p> 7351<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span> 7352<span class="preprocessor">#define</span> <span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span> 7353<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span> 7354 7355 <span class="keyword">class</span> <span class="identifier">thread_clock</span><span class="special">;</span> 7356 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 7357 <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> 7358 7359<span class="special">}</span> <span class="special">}</span> 7360</pre> 7361<div class="section"> 7362<div class="titlepage"><div><div><h5 class="title"> 7363<a name="chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_HAS_THREAD_CLOCK"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_HAS_THREAD_CLOCK" title="Macro BOOST_CHRONO_HAS_THREAD_CLOCK">Macro 7364 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span></code></a> 7365</h5></div></div></div> 7366<p> 7367 This macro is defined if the platform supports thread clocks. 7368 </p> 7369</div> 7370<div class="section"> 7371<div class="titlepage"><div><div><h5 class="title"> 7372<a name="chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_THREAD_CLOCK_IS_STEADY"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.BOOST_CHRONO_THREAD_CLOCK_IS_STEADY" title="Macro BOOST_CHRONO_THREAD_CLOCK_IS_STEADY">Macro 7373 <code class="computeroutput"><span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span></code></a> 7374</h5></div></div></div> 7375<p> 7376 This macro is defined if the platform has a thread clock. Its value is 7377 true if it is steady and false otherwise. 7378 </p> 7379</div> 7380<div class="section"> 7381<div class="titlepage"><div><div><h5 class="title"> 7382<a name="chrono.reference.other_clocks.thread_clock_hpp.thread_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock">Class 7383 <code class="computeroutput"><span class="identifier">thread_clock</span></code></a> 7384</h5></div></div></div> 7385<p> 7386 <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a> satisfy the <a class="link" href="reference.html#chrono.reference.cpp0x.clock" title="Clock Requirements"><code class="computeroutput"><span class="identifier">Clock</span></code></a> 7387 requirements. 7388 </p> 7389<p> 7390 <a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.thread_clock" title="Class thread_clock"><code class="computeroutput"><span class="identifier">thread_clock</span></code></a> class provides 7391 access to the real thread wall-clock, i.e. the real CPU-time clock of 7392 the calling thread. The thread relative current time can be obtained 7393 by calling <code class="computeroutput"><span class="identifier">thread_clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code>. 7394 </p> 7395<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">thread_clock</span> <span class="special">{</span> 7396<span class="keyword">public</span><span class="special">:</span> 7397 <span class="keyword">typedef</span> <a class="link" href="reference.html#chrono.reference.cpp0x.duration_hpp.duration_typedefs" title="duration typedefs"><code class="computeroutput"><span class="identifier">nanoseconds</span></code></a> <span class="identifier">duration</span><span class="special">;</span> 7398 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">rep</span> <span class="identifier">rep</span><span class="special">;</span> 7399 <span class="keyword">typedef</span> <span class="identifier">duration</span><span class="special">::</span><span class="identifier">period</span> <span class="identifier">period</span><span class="special">;</span> 7400 <span class="keyword">typedef</span> <span class="identifier">chrono</span><span class="special">::</span><a class="link" href="reference.html#chrono.reference.cpp0x.time_point_hpp.time_point" title="Class template time_point<>"><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> 7401 <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">is_steady</span> <span class="special">=</span> <span class="identifier">BOOST_CHRONO_THREAD_CLOCK_IS_STEADY</span><span class="special">;</span> 7402 7403 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 7404 <span class="keyword">static</span> <span class="identifier">time_point</span> <span class="identifier">now</span><span class="special">(</span> <span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <span class="identifier">ec</span> <span class="special">);</span> 7405<span class="special">};</span> 7406</pre> 7407</div> 7408<div class="section"> 7409<div class="titlepage"><div><div><h5 class="title"> 7410<a name="chrono.reference.other_clocks.thread_clock_hpp.clock_string_thread_clock"></a><a class="link" href="reference.html#chrono.reference.other_clocks.thread_clock_hpp.clock_string_thread_clock" title="clock_string<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> 7411 Specialization</a> 7412</h5></div></div></div> 7413<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CHRONO_HAS_THREAD_CLOCK</span><span class="special">)</span> 7414<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 7415<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> 7416<span class="special">{</span> 7417 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">name</span><span class="special">();</span> 7418 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">since</span><span class="special">();</span> 7419<span class="special">};</span> 7420<span class="preprocessor">#endif</span> 7421</pre> 7422<p> 7423 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">name</span><span class="special">()</span></code> 7424 returns "thread_clock". 7425 </p> 7426<p> 7427 <code class="computeroutput"><span class="identifier">clock_string</span><span class="special"><>::</span><span class="identifier">since</span><span class="special">()</span></code> 7428 returns " since thread start-up" 7429 </p> 7430</div> 7431</div> 7432</div> 7433</div> 7434<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 7435<td align="left"></td> 7436<td align="right"><div class="copyright-footer">Copyright © 2008 Howard Hinnant<br>Copyright © 2006, 2008 Beman Dawes<br>Copyright © 2009-2013 Vicente J. Botet Escriba<p> 7437 Distributed under the Boost Software License, Version 1.0. (See accompanying 7438 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 7439 </p> 7440</div></td> 7441</tr></table> 7442<hr> 7443<div class="spirit-nav"> 7444<a accesskey="p" href="users_guide.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../chrono.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 7445</div> 7446</body> 7447</html> 7448