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>Appendices</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="reference.html" title="Reference"> 11<link rel="next" href="../circular_buffer.html" title="Chapter 8. Boost.Circular Buffer"> 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="reference.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="../circular_buffer.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.appendices"></a><a class="link" href="appendices.html" title="Appendices">Appendices</a> 29</h2></div></div></div> 30<div class="toc"><dl class="toc"> 31<dt><span class="section"><a href="appendices.html#chrono.appendices.history">Appendix: History</a></span></dt> 32<dt><span class="section"><a href="appendices.html#chrono.appendices.rationale">Appendix: Rationale</a></span></dt> 33<dt><span class="section"><a href="appendices.html#chrono.appendices.implementation">Appendix: Implementation 34 Notes</a></span></dt> 35<dt><span class="section"><a href="appendices.html#chrono.appendices.faq">Appendix: FAQ</a></span></dt> 36<dt><span class="section"><a href="appendices.html#chrono.appendices.acknowledgements">Appendix: Acknowledgements</a></span></dt> 37<dt><span class="section"><a href="appendices.html#chrono.appendices.todo">Appendix: Future plans</a></span></dt> 38</dl></div> 39<div class="section"> 40<div class="titlepage"><div><div><h3 class="title"> 41<a name="chrono.appendices.history"></a><a class="link" href="appendices.html#chrono.appendices.history" title="Appendix: History">Appendix: History</a> 42</h3></div></div></div> 43<div class="toc"><dl class="toc"> 44<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_8____2018___1_70__"><span class="bold"><strong>Version 2.0.8, , 2018 - 1.70</strong></span> </a></span></dt> 45<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_7__august_18__2016___1_62__"><span class="bold"><strong>Version 2.0.7, August 18, 2016 - 1.62</strong></span> </a></span></dt> 46<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_6__december_18__2015___1_60__"><span class="bold"><strong>Version 2.0.6, December 18, 2015 - 1.60</strong></span> </a></span></dt> 47<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_5__february_18__2015___1_58__"><span class="bold"><strong>Version 2.0.5, February 18, 2015 - 1.58</strong></span> </a></span></dt> 48<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_4__july_12__2014___1_56__"><span class="bold"><strong>Version 2.0.4, July 12, 2014 - 1.56</strong></span> </a></span></dt> 49<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_3__september_29__2013___1_55__"><span class="bold"><strong>Version 2.0.3, September 29, 2013 - 1.55</strong></span> </a></span></dt> 50<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_2__june_15__2013___1_54__"><span class="bold"><strong>Version 2.0.2, June 15, 2013 - 1.54</strong></span> </a></span></dt> 51<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_1__january_18__2013___1_53__"><span class="bold"><strong>Version 2.0.1, January 18, 2013 - 1.53</strong></span> </a></span></dt> 52<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_2_0_0__october_23__2012___1_52__"><span class="bold"><strong>Version 2.0.0, October 23, 2012 - 1.52</strong></span> </a></span></dt> 53<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_1_2_3__august_1__2012___1_51__"><span class="bold"><strong>Version 1.2.3, August 1, 2012 - 1.51</strong></span> </a></span></dt> 54<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_1_2_2__april_1__2012___1_50__"><span class="bold"><strong>Version 1.2.2, April 1, 2012 - 1.50</strong></span> </a></span></dt> 55<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_1_2_1__february_1__2012___1_49__"><span class="bold"><strong>Version 1.2.1, February 1, 2012 - 1.49</strong></span> </a></span></dt> 56<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_1_2_0__october_17__2011__"><span class="bold"><strong>Version 1.2.0, October 17, 2011</strong></span> </a></span></dt> 57<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_1_1_0__mars_17__2011__"><span class="bold"><strong>Version 1.1.0, Mars 17, 2011</strong></span> </a></span></dt> 58<dt><span class="section"><a href="appendices.html#chrono.appendices.history.__version_1_0_0__january_6__2011__"><span class="bold"><strong>Version 1.0.0, January 6, 2011</strong></span> </a></span></dt> 59</dl></div> 60<div class="section"> 61<div class="titlepage"><div><div><h4 class="title"> 62<a name="chrono.appendices.history.__version_2_0_8____2018___1_70__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_8____2018___1_70__" title="Version 2.0.8, , 2018 - 1.70"><span class="bold"><strong>Version 2.0.8, , 2018 - 1.70</strong></span> </a> 63</h4></div></div></div> 64<p> 65 <span class="bold"><strong>Fixes:</strong></span> 66 </p> 67<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 68 Remove Stopwatches, which was never be delivered officially. 69 </li></ul></div> 70</div> 71<div class="section"> 72<div class="titlepage"><div><div><h4 class="title"> 73<a name="chrono.appendices.history.__version_2_0_7__august_18__2016___1_62__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_7__august_18__2016___1_62__" title="Version 2.0.7, August 18, 2016 - 1.62"><span class="bold"><strong>Version 2.0.7, August 18, 2016 - 1.62</strong></span> </a> 74</h4></div></div></div> 75<p> 76 <span class="bold"><strong>Fixes:</strong></span> 77 </p> 78<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 79<li class="listitem"> 80 <a href="http://svn.boost.org/trac/boost/ticket/11630" target="_top">#11630</a> 81 boost chrono documentation about boost chrono version & io API 82 is wrong. 83 </li> 84<li class="listitem"> 85 <a href="http://svn.boost.org/trac/boost/ticket/12176" target="_top">#12176</a> 86 Chrono without linking to Boost.System 87 </li> 88<li class="listitem"> 89 <a href="http://svn.boost.org/trac/boost/ticket/12260" target="_top">#12260</a> 90 Bug: time_fmt does not support for wchar_t on windows 91 </li> 92</ul></div> 93</div> 94<div class="section"> 95<div class="titlepage"><div><div><h4 class="title"> 96<a name="chrono.appendices.history.__version_2_0_6__december_18__2015___1_60__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_6__december_18__2015___1_60__" title="Version 2.0.6, December 18, 2015 - 1.60"><span class="bold"><strong>Version 2.0.6, December 18, 2015 - 1.60</strong></span> </a> 97</h4></div></div></div> 98<p> 99 <span class="bold"><strong>Fixes:</strong></span> 100 </p> 101<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 102<li class="listitem"> 103 <a href="http://svn.boost.org/trac/boost/ticket/11330" target="_top">#11330</a> 104 boost::chrono::duration default constructor doesn't initialize rep_ 105 </li> 106<li class="listitem"> 107 <a href="http://svn.boost.org/trac/boost/ticket/11618" target="_top">#11618</a> 108 Chrono IO V2 doc ios_state.hpp does not exist 109 </li> 110<li class="listitem"> 111 <a href="http://svn.boost.org/trac/boost/ticket/11631" target="_top">#11631</a> 112 boost chrono io v2 does not let you support custom clocks 113 </li> 114</ul></div> 115</div> 116<div class="section"> 117<div class="titlepage"><div><div><h4 class="title"> 118<a name="chrono.appendices.history.__version_2_0_5__february_18__2015___1_58__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_5__february_18__2015___1_58__" title="Version 2.0.5, February 18, 2015 - 1.58"><span class="bold"><strong>Version 2.0.5, February 18, 2015 - 1.58</strong></span> </a> 119</h4></div></div></div> 120<p> 121 <span class="bold"><strong>Fixes:</strong></span> 122 </p> 123<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 124<li class="listitem"> 125 <a href="http://svn.boost.org/trac/boost/ticket/10778" target="_top">#10778</a> 126 VC14 CTP4 Atomic don't compile with boost::chrono durations which are 127 not TriviallyCopyable 128 </li> 129<li class="listitem"> 130 <a href="http://svn.boost.org/trac/boost/ticket/10840" target="_top">#10840</a> 131 Missing std:: qualifier for puts call in test_7868.cpp 132 </li> 133<li class="listitem"> 134 <a href="http://svn.boost.org/trac/boost/ticket/10851" target="_top">#10851</a> 135 Missing std:: qualifier for puts call in time_point_output.cpp 136 </li> 137<li class="listitem"> 138 <a href="http://svn.boost.org/trac/boost/ticket/10893" target="_top">#10893</a> 139 Minor doc typo in Boost.Chrono 140 </li> 141<li class="listitem"> 142 <a href="http://svn.boost.org/trac/boost/ticket/10992" target="_top">#10992</a> 143 Chrono IO state savers inconsistent with Boost.IO state savers 144 </li> 145<li class="listitem"> 146 <a href="http://svn.boost.org/trac/boost/ticket/10995" target="_top">#10995</a> 147 duration_put::put_value truncates fractional part 148 </li> 149<li class="listitem"> 150 <a href="http://svn.boost.org/trac/boost/ticket/11006" target="_top">#11006</a> 151 Impossible to instantiate time_fmt_io_saver due to several errors. 152 </li> 153<li class="listitem"> 154 <a href="http://svn.boost.org/trac/boost/ticket/11012" target="_top">#11012</a> 155 chrono_io v2 fail to compile with boost::chrono::duration< boost::rational<int> 156 > 157 </li> 158</ul></div> 159</div> 160<div class="section"> 161<div class="titlepage"><div><div><h4 class="title"> 162<a name="chrono.appendices.history.__version_2_0_4__july_12__2014___1_56__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_4__july_12__2014___1_56__" title="Version 2.0.4, July 12, 2014 - 1.56"><span class="bold"><strong>Version 2.0.4, July 12, 2014 - 1.56</strong></span> </a> 163</h4></div></div></div> 164<p> 165 <span class="bold"><strong>Fixes:</strong></span> 166 </p> 167<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 168<li class="listitem"> 169 <a href="http://svn.boost.org/trac/boost/ticket/6918" target="_top">#6918</a> 170 Boost Chrono compilation failure on HP uX due to undefined pthread_getcpuclockid 171 </li> 172<li class="listitem"> 173 <a href="http://svn.boost.org/trac/boost/ticket/8006" target="_top">#8006</a> 174 Boost::Chrono Assertion at startup - steady_clock::now() - Windows 175 </li> 176<li class="listitem"> 177 <a href="http://svn.boost.org/trac/boost/ticket/9337" target="_top">#9337</a> 178 chrono::process_cpu_clock time points wrong by factor 1000 on Linux 179 </li> 180<li class="listitem"> 181 <a href="http://svn.boost.org/trac/boost/ticket/9342" target="_top">#9342</a> 182 Regression on process_cpu_clock::timepoint io on V2 183 </li> 184<li class="listitem"> 185 <a href="http://svn.boost.org/trac/boost/ticket/9419" target="_top">#9419</a> 186 boost::chrono::floor()/round() and negative durations is wrong 187 </li> 188<li class="listitem"> 189 <a href="http://svn.boost.org/trac/boost/ticket/9698" target="_top">#9698</a> 190 boost::chrono::thread_clock not declared in OSX 191 </li> 192<li class="listitem"> 193 <a href="http://svn.boost.org/trac/boost/ticket/9720" target="_top">#9720</a> 194 boost::this_thread::sleep_for() sometimes returns immediately on win32 195 </li> 196<li class="listitem"> 197 <a href="http://svn.boost.org/trac/boost/ticket/9859" target="_top">#9859</a> 198 Remove references to gcc-mingw 199 </li> 200<li class="listitem"> 201 <a href="http://svn.boost.org/trac/boost/ticket/9918" target="_top">#9918</a> 202 chrono compilation error on Solaris, function timegm 203 </li> 204<li class="listitem"> 205 <a href="http://svn.boost.org/trac/boost/ticket/9811" target="_top">#9811</a> 206 boost/boost/chrono/duration.hpp:355:56: error: call to non-constexpr 207 function 'static std::numeric_limits<float>::_Ty std::numeric_limits<float>::max()' 208 /home/zosun/input_service/inputservices-core-service/other/boost/boost/chrono/duration.hpp: 209 In static member function 'static constexpr double boost::chrono::detail::chrono_numeric_limits<double, 210 true>::lowest()': 211 </li> 212<li class="listitem"> 213 <a href="http://svn.boost.org/trac/boost/ticket/10069" target="_top">#10069</a> 214 Overflow in chrono clocks on 32bit 215 </li> 216<li class="listitem"> 217 <a href="http://svn.boost.org/trac/boost/ticket/10151" target="_top">#10151</a> 218 timegm function not available on QNX 219 </li> 220</ul></div> 221</div> 222<div class="section"> 223<div class="titlepage"><div><div><h4 class="title"> 224<a name="chrono.appendices.history.__version_2_0_3__september_29__2013___1_55__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_3__september_29__2013___1_55__" title="Version 2.0.3, September 29, 2013 - 1.55"><span class="bold"><strong>Version 2.0.3, September 29, 2013 - 1.55</strong></span> </a> 225</h4></div></div></div> 226<p> 227 <span class="bold"><strong>Fixes:</strong></span> 228 </p> 229<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 230<li class="listitem"> 231 <a href="http://svn.boost.org/trac/boost/ticket/7868" target="_top">#7868</a> 232 chrono_io parses time incorrectly (1.53 and 1.52) 233 </li> 234<li class="listitem"> 235 <a href="http://svn.boost.org/trac/boost/ticket/9028" target="_top">#9028</a> 236 Typo in boost/chrono/stopwatches/formatters/base_formatter.hpp 237 </li> 238<li class="listitem"> 239 <a href="http://svn.boost.org/trac/boost/ticket/9147" target="_top">#9147</a> 240 uninitialized std::tm 241 </li> 242<li class="listitem"> 243 <a href="http://svn.boost.org/trac/boost/ticket/9274" target="_top">#9274</a> 244 lost of precision on system_clock input. 245 </li> 246<li class="listitem"> 247 <a href="http://svn.boost.org/trac/boost/ticket/9276" target="_top">#9276</a> 248 output from a system_clock::time_point get a time_point that is one 249 day later than expected. 250 </li> 251</ul></div> 252</div> 253<div class="section"> 254<div class="titlepage"><div><div><h4 class="title"> 255<a name="chrono.appendices.history.__version_2_0_2__june_15__2013___1_54__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_2__june_15__2013___1_54__" title="Version 2.0.2, June 15, 2013 - 1.54"><span class="bold"><strong>Version 2.0.2, June 15, 2013 - 1.54</strong></span> </a> 256</h4></div></div></div> 257<p> 258 <span class="bold"><strong>Fixes:</strong></span> 259 </p> 260<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 261<li class="listitem"> 262 <a href="http://svn.boost.org/trac/boost/ticket/8079" target="_top">#8079</a> 263 Chrono memory leak 264 </li> 265<li class="listitem"> 266 <a href="http://svn.boost.org/trac/boost/ticket/8318" target="_top">#8318</a> 267 BOOST_FORCEINLINE constructors of time_point and duration 268 </li> 269<li class="listitem"> 270 <a href="http://svn.boost.org/trac/boost/ticket/8367" target="_top">#8367</a> 271 chrono does not compile with clang from XCode 4.5.2 with -std=c++11 272 -stdlib=libc++ and -arch armv7 273 </li> 274<li class="listitem"> 275 <a href="http://svn.boost.org/trac/boost/ticket/8370" target="_top">#8370</a> 276 typo in chrono reference 277 </li> 278<li class="listitem"> 279 <a href="http://svn.boost.org/trac/boost/ticket/8435" target="_top">#8435</a> 280 Can't compile Chrono on HP-UX due to no CLOCK_REALTIME macro. 281 </li> 282<li class="listitem"> 283 <a href="http://svn.boost.org/trac/boost/ticket/8690" target="_top">#8690</a> 284 duration_units_default - lost return types constness in overridden 285 methods. 286 </li> 287<li class="listitem"> 288 <a href="http://svn.boost.org/trac/boost/ticket/8691" target="_top">#8691</a> 289 iostate is not checked after scan_keyword call. 290 </li> 291<li class="listitem"> 292 <a href="http://svn.boost.org/trac/boost/ticket/8696" target="_top">#8696</a> 293 chrono compilation error on Solaris/gcc. 294 </li> 295</ul></div> 296</div> 297<div class="section"> 298<div class="titlepage"><div><div><h4 class="title"> 299<a name="chrono.appendices.history.__version_2_0_1__january_18__2013___1_53__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_1__january_18__2013___1_53__" title="Version 2.0.1, January 18, 2013 - 1.53"><span class="bold"><strong>Version 2.0.1, January 18, 2013 - 1.53</strong></span> </a> 300</h4></div></div></div> 301<p> 302 <span class="bold"><strong>Deprecated:</strong></span> 303 </p> 304<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 305<li class="listitem"> 306 The chrono i/o version included in Boost.Chrono 1.2.x has been completly 307 refactored in version 2.0.0 308 </li> 309<li class="listitem"> 310 chrono I/O: The manipulators <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.manipulators" title="I/O Manipulators"><code class="computeroutput"><span class="identifier">duration_short</span></code></a>, <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.manipulators" title="I/O Manipulators"><code class="computeroutput"><span class="identifier">duration_long</span></code></a> are deprecated. 311 You should use the parameterized form <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> or the renamed 312 manipulators __duration_symbol and __duration_prefix instead. 313 </li> 314<li class="listitem"> 315 chrono I/O: 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 316 is deprecated. You should use the <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> free function 317 to get the informations and use 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 for localization 318 purposes. 319 </li> 320</ul></div> 321<p> 322 When BOOST_CHRONO_VERSION==2 the preceding deprecated functions are not 323 available. 324 </p> 325<p> 326 <span class="bold"><strong>Fixes:</strong></span> 327 </p> 328<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 329<li class="listitem"> 330 <a href="http://svn.boost.org/trac/boost/ticket/7546" target="_top">#7546</a> 331 time_point<system_clock> output version 2 fails to compile assigned 332 viboes Bugs Boost 1.53.0 -- 333 </li> 334<li class="listitem"> 335 <a href="http://svn.boost.org/trac/boost/ticket/7547" target="_top">#7547</a> 336 time_point<system_clock> input version 2 fails to compile assigned 337 viboes Bugs Boost 1.53.0 -- 338 </li> 339<li class="listitem"> 340 <a href="http://svn.boost.org/trac/boost/ticket/7868" target="_top">#7868</a> 341 chrono_io parses time incorrectly (1.53 and 1.52) 342 </li> 343</ul></div> 344</div> 345<div class="section"> 346<div class="titlepage"><div><div><h4 class="title"> 347<a name="chrono.appendices.history.__version_2_0_0__october_23__2012___1_52__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_2_0_0__october_23__2012___1_52__" title="Version 2.0.0, October 23, 2012 - 1.52"><span class="bold"><strong>Version 2.0.0, October 23, 2012 - 1.52</strong></span> </a> 348</h4></div></div></div> 349<p> 350 <span class="bold"><strong>New Features:</strong></span> 351 </p> 352<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 353 Enhance chrono I/O 354 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "> 355<li class="listitem"> 356 <a href="http://svn.boost.org/trac/boost/ticket/5980" target="_top">#5980</a> 357 Enhance chrono I/O with H. Hinnant proposal <a href="http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html" target="_top">proposal</a> 358 which has the advantage to provide I/O for system clocks using 359 the Gregorian Calendar. 360 </li> 361<li class="listitem"> 362 <a href="http://svn.boost.org/trac/boost/ticket/5981" target="_top">#5981</a> 363 Add i/o state savers for duration and time_point formatting state. 364 </li> 365<li class="listitem"> 366 <a href="http://svn.boost.org/trac/boost/ticket/7059" target="_top">#7059</a> 367 Add low level i/o facilities. 368 </li> 369</ul></div> 370 </li></ul></div> 371<p> 372 <span class="bold"><strong>Deprecated:</strong></span> 373 </p> 374<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 375<li class="listitem"> 376 The chrono i/o version included in Boost.Chrono 1.2.x has been completly 377 refactored in version 2.0.0 378 </li> 379<li class="listitem"> 380 chrono I/O: The manipulators <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.manipulators" title="I/O Manipulators"><code class="computeroutput"><span class="identifier">duration_short</span></code></a>, <a class="link" href="reference.html#chrono.reference.io_v1.chrono_io_hpp.manipulators" title="I/O Manipulators"><code class="computeroutput"><span class="identifier">duration_long</span></code></a> are deprecated. 381 You should use the parameterized form <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> or the renamed 382 manipulators __duration_symbol and __duration_prefix instead. 383 </li> 384<li class="listitem"> 385 chrono I/O: 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 386 is deprecated. You should use the <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> free function 387 to get the informations and use 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 for localization 388 purposes. 389 </li> 390</ul></div> 391<p> 392 When BOOST_CHRONO_VERSION==2 the preceding deprecated functions are not 393 available. 394 </p> 395<p> 396 <span class="bold"><strong>Fixes:</strong></span> 397 </p> 398<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 399<li class="listitem"> 400 <a href="http://svn.boost.org/trac/boost/ticket/7381" target="_top">#7381</a> 401 C++11 compliance: unresolved symbol when assigning a constexpr duration 402 to a non-const local variable. 403 </li> 404<li class="listitem"> 405 <a href="http://svn.boost.org/trac/boost/ticket/7479" target="_top">#7479</a> 406 Compiles fails with compilers supporting constexpr fails if the standard 407 library doesn't provides the constexpr interface 408 </li> 409<li class="listitem"> 410 <a href="http://svn.boost.org/trac/boost/ticket/7493" target="_top">#7493</a> 411 compile fail on intel-linux-12.1.3.0x because of bug on explicit bool 412 conversion 413 </li> 414<li class="listitem"> 415 <a href="http://svn.boost.org/trac/boost/ticket/7542" target="_top">#7542</a> 416 Missing -lpthread in chrono/io tester Sandia-clang-trunk 417 </li> 418</ul></div> 419<p> 420 <span class="bold"><strong>Would not fix:</strong></span> 421 </p> 422<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 423 <a href="http://svn.boost.org/trac/boost/ticket/6871" target="_top">#6871</a> 424 chrono_io.hpp: operator<<(ostream& os, ...) modifies the 425 state of os. 426 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"> 427 The new io interface provided in version 2 solves this issue. 428 You should move to the new version. 429 </li></ul></div> 430 </li></ul></div> 431<p> 432 <span class="bold"><strong>Known bugs not fixed yet:</strong></span> 433 </p> 434<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 435 <a href="http://svn.boost.org/trac/boost/ticket/7525" target="_top">#7525</a> 436 Wrong clock_string<system_clock>::since() on Windows 437 </li></ul></div> 438</div> 439<div class="section"> 440<div class="titlepage"><div><div><h4 class="title"> 441<a name="chrono.appendices.history.__version_1_2_3__august_1__2012___1_51__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_1_2_3__august_1__2012___1_51__" title="Version 1.2.3, August 1, 2012 - 1.51"><span class="bold"><strong>Version 1.2.3, August 1, 2012 - 1.51</strong></span> </a> 442</h4></div></div></div> 443<p> 444 <span class="bold"><strong>Fixes:</strong></span> 445 </p> 446<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 447<li class="listitem"> 448 <a href="http://svn.boost.org/trac/boost/ticket/6918" target="_top">#6918</a> 449 Boost Chrono compilation failure on HP uX due to undefined pthread_getcpuclockid. 450 </li> 451<li class="listitem"> 452 <a href="http://svn.boost.org/trac/boost/ticket/6241" target="_top">#6241</a> 453 boost::chrono compilation problems without std::wstring support. 454 </li> 455<li class="listitem"> 456 <a href="http://svn.boost.org/trac/boost/ticket/6987" target="_top">#6987</a> 457 Documentation & C++11. 458 </li> 459<li class="listitem"> 460 <a href="http://svn.boost.org/trac/boost/ticket/7041" target="_top">#7041</a> 461 time_point.hpp depends on Boost.System. 462 </li> 463<li class="listitem"> 464 <a href="http://svn.boost.org/trac/boost/ticket/7042" target="_top">#7042</a> 465 Avoiding time_point and duration dependency on time.h and CLOCK_REALTIME. 466 </li> 467<li class="listitem"> 468 <a href="http://svn.boost.org/trac/boost/ticket/7058" target="_top">#7058</a> 469 Make it work when BOOST_NO_EXCEPTIONS is defined. 470 </li> 471<li class="listitem"> 472 <a href="http://svn.boost.org/trac/boost/ticket/7069" target="_top">#7069</a> 473 Misspellings in clock_string<thread_clock>. 474 </li> 475<li class="listitem"> 476 <a href="http://svn.boost.org/trac/boost/ticket/7081" target="_top">#7081</a> 477 WinError.h capitalization in boost/detail/win/basic_types.hpp. 478 </li> 479</ul></div> 480</div> 481<div class="section"> 482<div class="titlepage"><div><div><h4 class="title"> 483<a name="chrono.appendices.history.__version_1_2_2__april_1__2012___1_50__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_1_2_2__april_1__2012___1_50__" title="Version 1.2.2, April 1, 2012 - 1.50"><span class="bold"><strong>Version 1.2.2, April 1, 2012 - 1.50</strong></span> </a> 484</h4></div></div></div> 485<p> 486 <span class="bold"><strong>Fixes:</strong></span> 487 </p> 488<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 489<li class="listitem"> 490 <a href="http://svn.boost.org/trac/boost/ticket/6361" target="_top">#6361</a> 491 integer overflow in boost::chrono::process_real_cpu_clock::now() under 492 Windows 32bits. 493 </li> 494<li class="listitem"> 495 <a href="http://svn.boost.org/trac/boost/ticket/6628" target="_top">#6628</a> 496 compiler warning in process_cpu_clocks.hpp. 497 </li> 498<li class="listitem"> 499 <a href="http://svn.boost.org/trac/boost/ticket/6666" target="_top">#6666</a> 500 thread_clock.hpp needs pthread.h. 501 </li> 502</ul></div> 503</div> 504<div class="section"> 505<div class="titlepage"><div><div><h4 class="title"> 506<a name="chrono.appendices.history.__version_1_2_1__february_1__2012___1_49__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_1_2_1__february_1__2012___1_49__" title="Version 1.2.1, February 1, 2012 - 1.49"><span class="bold"><strong>Version 1.2.1, February 1, 2012 - 1.49</strong></span> </a> 507</h4></div></div></div> 508<p> 509 <span class="bold"><strong>Fixes:</strong></span> 510 </p> 511<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 512<li class="listitem"> 513 <a href="http://svn.boost.org/trac/boost/ticket/6092" target="_top">#6092</a> 514 Input from non integral durations makes the compiler fail. 515 </li> 516<li class="listitem"> 517 <a href="http://svn.boost.org/trac/boost/ticket/6093" target="_top">#6093</a> 518 [1/3]second fails as valid duration input. 519 </li> 520<li class="listitem"> 521 <a href="http://svn.boost.org/trac/boost/ticket/6113" target="_top">#6113</a> 522 duplicate symbol when BOOST_CHRONO_HEADER_ONLY is defined. 523 </li> 524<li class="listitem"> 525 <a href="http://svn.boost.org/trac/boost/ticket/6243" target="_top">#6243</a> 526 Sandia-pgi-11.9: more than one instance of overloaded function "min" 527 matches. 528 </li> 529<li class="listitem"> 530 <a href="http://svn.boost.org/trac/boost/ticket/6257" target="_top">#6257</a> 531 process_cpu_clock::now() on linux gives time_points 1/1000 times. 532 </li> 533</ul></div> 534</div> 535<div class="section"> 536<div class="titlepage"><div><div><h4 class="title"> 537<a name="chrono.appendices.history.__version_1_2_0__october_17__2011__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_1_2_0__october_17__2011__" title="Version 1.2.0, October 17, 2011"><span class="bold"><strong>Version 1.2.0, October 17, 2011</strong></span> </a> 538</h4></div></div></div> 539<p> 540 <span class="bold"><strong>New Features:</strong></span> 541 </p> 542<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 543<li class="listitem"> 544 <a href="http://svn.boost.org/trac/boost/ticket/5979" target="_top">#5979</a> 545 Added chrono rounding utilities as defined By Howard Hinnant <a href="http://home.roadrunner.com/~hinnant/duration_io/chrono_util.html" target="_top">here</a>. 546 </li> 547<li class="listitem"> 548 <a href="http://svn.boost.org/trac/boost/ticket/5978" target="_top">#5978</a> 549 Added BOOST_CHRONO_HAS_PROCESS_CLOCKS to know if process clocks are 550 available. 551 </li> 552<li class="listitem"> 553 <a href="http://svn.boost.org/trac/boost/ticket/5998" target="_top">#5998</a> 554 Make possible to don't provide hybrid error handling. 555 </li> 556<li class="listitem"> 557 <a href="http://svn.boost.org/trac/boost/ticket/5906" target="_top">#5906</a> 558 Take in account the constexpr as defined in the standard. 559 </li> 560<li class="listitem"> 561 <a href="http://svn.boost.org/trac/boost/ticket/5907" target="_top">#5907</a> 562 Take in account noexcept for compilers supporting it. 563 </li> 564</ul></div> 565<p> 566 <span class="bold"><strong>Fixes:</strong></span> 567 </p> 568<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 569<li class="listitem"> 570 <a href="http://svn.boost.org/trac/boost/ticket/2114" target="_top">#2114</a> 571 Enable visibility support (Boost.Chorno part) 572 </li> 573<li class="listitem"> 574 <a href="http://svn.boost.org/trac/boost/ticket/5669" target="_top">#5669</a> 575 Intel compiler failure to compile duration.hpp 576 </li> 577<li class="listitem"> 578 <a href="http://svn.boost.org/trac/boost/ticket/5909" target="_top">#5909</a> 579 process_cpu_clock::now() on MAC gives time_points 1/1000 times. 580 </li> 581<li class="listitem"> 582 <a href="http://svn.boost.org/trac/boost/ticket/5946" target="_top">#5946</a> 583 Process real cpu clock returns the system steady clock (windows). 584 </li> 585<li class="listitem"> 586 <a href="http://svn.boost.org/trac/boost/ticket/5974" target="_top">#5974</a> 587 Process real cpu clock should use clock() instead of times() in MAC 588 which is twice faster and have better resolution. 589 </li> 590</ul></div> 591<p> 592 <span class="bold"><strong>Cleanup:</strong></span> 593 </p> 594<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 595<li class="listitem"> 596 <a href="http://svn.boost.org/trac/boost/ticket/5975" target="_top">#5975</a> 597 Reduce the combinations of header-only, shared, static link to reduce 598 test time by 50%. 599 </li> 600<li class="listitem"> 601 <a href="http://svn.boost.org/trac/boost/ticket/5976" target="_top">#5976</a> 602 chrono_accuracy_test is not deterministic and should be removed from 603 the regression tests 604 </li> 605<li class="listitem"> 606 <a href="http://svn.boost.org/trac/boost/ticket/5977" target="_top">#5977</a> 607 Remove old files from Beman's version. Some old files included in the 608 Beman's version and not documented in the reviewed version that have 609 been definitely removed from the repository as 610 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "> 611<li class="listitem"> 612 boost/chrono/timer.hpp, 613 </li> 614<li class="listitem"> 615 boost/chrono/process_times.hpp 616 </li> 617<li class="listitem"> 618 boost/chrono/detail/process_clock.hpp, 619 </li> 620<li class="listitem"> 621 boost/chrono/detail/mac/process_clock.hpp, 622 </li> 623<li class="listitem"> 624 boost/chrono/detail/posix/process_clock.hpp, 625 </li> 626<li class="listitem"> 627 boost/chrono/detail/win/process_clock.hpp, 628 </li> 629<li class="listitem"> 630 boost/chrono/detail/run_timer.hpp, 631 </li> 632<li class="listitem"> 633 boost/chrono/detail/run_timer_static.hpp, 634 </li> 635</ul></div> 636 </li> 637</ul></div> 638</div> 639<div class="section"> 640<div class="titlepage"><div><div><h4 class="title"> 641<a name="chrono.appendices.history.__version_1_1_0__mars_17__2011__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_1_1_0__mars_17__2011__" title="Version 1.1.0, Mars 17, 2011"><span class="bold"><strong>Version 1.1.0, Mars 17, 2011</strong></span> </a> 642</h4></div></div></div> 643<p> 644 <span class="bold"><strong>New Features:</strong></span> 645 </p> 646<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 647<li class="listitem"> 648 <a href="http://svn.boost.org/trac/boost/ticket/????" target="_top">#????</a> 649 Added time_point unary operators +,-,++,-- and binary operators +<code class="literal">,-</code> 650 with Rep al RHS. 651 </li> 652<li class="listitem"> 653 <a href="http://svn.boost.org/trac/boost/ticket/5323" target="_top">#5323</a> 654 Add Associated type difference_type for chrono::time_point. 655 </li> 656</ul></div> 657<p> 658 <span class="bold"><strong>Fixes:</strong></span> 659 </p> 660<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 661 <a href="http://svn.boost.org/trac/boost/ticket/5322" target="_top">#5322</a> 662 Explicit default constructed chrono::durations are uninitialized 663 </li></ul></div> 664</div> 665<div class="section"> 666<div class="titlepage"><div><div><h4 class="title"> 667<a name="chrono.appendices.history.__version_1_0_0__january_6__2011__"></a><a class="link" href="appendices.html#chrono.appendices.history.__version_1_0_0__january_6__2011__" title="Version 1.0.0, January 6, 2011"><span class="bold"><strong>Version 1.0.0, January 6, 2011</strong></span> </a> 668</h4></div></div></div> 669<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 670<li class="listitem"> 671 Moved chrono to trunk taking in account the review remarks. 672 </li> 673<li class="listitem"> 674 Documentation revision. 675 </li> 676</ul></div> 677<p> 678 <span class="bold"><strong>Features:</strong></span> 679 </p> 680<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 681<li class="listitem"> 682 Boost_Chrono is now a configurable header-only library version (that 683 also allows the user to choose if the <code class="computeroutput"><span class="identifier">windows</span><span class="special">.</span><span class="identifier">h</span></code> 684 file is included or not). 685 </li> 686<li class="listitem"> 687 Added clock_string<> traits. 688 </li> 689<li class="listitem"> 690 Define chrono-io for all the clocks. 691 </li> 692<li class="listitem"> 693 Add input of process_times representation. 694 </li> 695</ul></div> 696<p> 697 <span class="bold"><strong>Implementation:</strong></span> 698 </p> 699<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 700<li class="listitem"> 701 Use of detail/win files to avoid the use of windows.h file. 702 </li> 703<li class="listitem"> 704 Completed the error_code handling. 705 </li> 706<li class="listitem"> 707 Works now with BOOST_SYSTEM_NO_DEPRECATED. 708 </li> 709</ul></div> 710<p> 711 <span class="bold"><strong>Fixes:</strong></span> 712 </p> 713<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 714<li class="listitem"> 715 Fix some warnings. 716 </li> 717<li class="listitem"> 718 Fix original errors on Mac 719 </li> 720<li class="listitem"> 721 Don't fix the link with boost_system to static. 722 </li> 723</ul></div> 724<p> 725 <span class="bold"><strong>Test:</strong></span> 726 </p> 727<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 728<li class="listitem"> 729 Added test on process and thread clocks. 730 </li> 731<li class="listitem"> 732 Moved to lightweight_test.hpp. 733 </li> 734<li class="listitem"> 735 Able to test multiple configurations. 736 </li> 737</ul></div> 738<p> 739 <span class="bold"><strong>Doc:</strong></span> 740 </p> 741<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 742 Removed some not useful parts as the test and the tickets. 743 </li></ul></div> 744</div> 745</div> 746<div class="section"> 747<div class="titlepage"><div><div><h3 class="title"> 748<a name="chrono.appendices.rationale"></a><a class="link" href="appendices.html#chrono.appendices.rationale" title="Appendix: Rationale">Appendix: Rationale</a> 749</h3></div></div></div> 750<p> 751 See <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm" target="_top"><span class="bold"><strong>N2661 - A Foundation to Sleep On</strong></span></a> which is 752 very informative and provides motivation for key design decisions. This section 753 contains some extracts from this document. 754 </p> 755<h5> 756<a name="chrono.appendices.rationale.h0"></a> 757 <span class="phrase"><a name="chrono.appendices.rationale.why_duration_needs_operator_"></a></span><a class="link" href="appendices.html#chrono.appendices.rationale.why_duration_needs_operator_">Why duration 758 needs operator%</a> 759 </h5> 760<p> 761 This operator is convenient for computing where in a time frame a given duration 762 lies. A motivating example is converting a duration into a "broken-down" 763 time duration such as hours::minutes::seconds: 764 </p> 765<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">ClockTime</span> 766<span class="special">{</span> 767 <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">hours</span> <span class="identifier">hours</span><span class="special">;</span> 768 <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">minutes</span> <span class="identifier">minutes</span><span class="special">;</span> 769 <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">seconds</span> <span class="identifier">seconds</span><span class="special">;</span> 770<span class="keyword">public</span><span class="special">:</span> 771 <span class="identifier">hours</span> <span class="identifier">hours_</span><span class="special">;</span> 772 <span class="identifier">minutes</span> <span class="identifier">minutes_</span><span class="special">;</span> 773 <span class="identifier">seconds</span> <span class="identifier">seconds_</span><span class="special">;</span> 774 775 <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> 776 <span class="keyword">explicit</span> <span class="identifier">ClockTime</span><span class="special">(</span><span class="keyword">const</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">Rep</span><span class="special">,</span> <span class="identifier">Period</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">)</span> 777 <span class="special">:</span> <span class="identifier">hours_</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_cast</span><span class="special"><</span><span class="identifier">hours</span><span class="special">></span> <span class="special">(</span><span class="identifier">d</span><span class="special">)),</span> 778 <span class="identifier">minutes_</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_cast</span><span class="special"><</span><span class="identifier">minutes</span><span class="special">>(</span><span class="identifier">d</span> <span class="special">%</span> <span class="identifier">hours</span><span class="special">(</span><span class="number">1</span><span class="special">))),</span> 779 <span class="identifier">seconds_</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_cast</span><span class="special"><</span><span class="identifier">seconds</span><span class="special">>(</span><span class="identifier">d</span> <span class="special">%</span> <span class="identifier">minutes</span><span class="special">(</span><span class="number">1</span><span class="special">)))</span> 780 <span class="special">{}</span> 781<span class="special">};</span> 782</pre> 783</div> 784<div class="section"> 785<div class="titlepage"><div><div><h3 class="title"> 786<a name="chrono.appendices.implementation"></a><a class="link" href="appendices.html#chrono.appendices.implementation" title="Appendix: Implementation Notes">Appendix: Implementation 787 Notes</a> 788</h3></div></div></div> 789<h5> 790<a name="chrono.appendices.implementation.h0"></a> 791 <span class="phrase"><a name="chrono.appendices.implementation.which_apis_have_been_chosen_to_implement_each_clock_on_each_platform_"></a></span><a class="link" href="appendices.html#chrono.appendices.implementation.which_apis_have_been_chosen_to_implement_each_clock_on_each_platform_">Which 792 APIs have been chosen to implement each clock on each platform?</a> 793 </h5> 794<p> 795 The following table presents a resume of which API is used for each clock 796 on each platform 797 </p> 798<div class="table"> 799<a name="chrono.appendices.implementation.clock_api_correspondence"></a><p class="title"><b>Table 7.4. Clock API correspondence</b></p> 800<div class="table-contents"><table class="table" summary="Clock API correspondence"> 801<colgroup> 802<col> 803<col> 804<col> 805<col> 806</colgroup> 807<thead><tr> 808<th> 809 <p> 810 Clock 811 </p> 812 </th> 813<th> 814 <p> 815 Windows Platform 816 </p> 817 </th> 818<th> 819 <p> 820 Posix Platform 821 </p> 822 </th> 823<th> 824 <p> 825 Mac Platform 826 </p> 827 </th> 828</tr></thead> 829<tbody> 830<tr> 831<td> 832 <p> 833 <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> 834 </p> 835 </td> 836<td> 837 <p> 838 GetSystemTimeAsFileTime 839 </p> 840 </td> 841<td> 842 <p> 843 clock_gettime( CLOCK_REALTIME) 844 </p> 845 </td> 846<td> 847 <p> 848 gettimeofday 849 </p> 850 </td> 851</tr> 852<tr> 853<td> 854 <p> 855 <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> 856 </p> 857 </td> 858<td> 859 <p> 860 QueryPerformanceCounter and QueryPerformanceFrequency 861 </p> 862 </td> 863<td> 864 <p> 865 clock_gettime( CLOCK_STEADY) 866 </p> 867 </td> 868<td> 869 <p> 870 mach_timebase_info,mach_absolute_time 871 </p> 872 </td> 873</tr> 874<tr> 875<td> 876 <p> 877 <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> 878 </p> 879 </td> 880<td> 881 <p> 882 GetProcessTimes 883 </p> 884 </td> 885<td> 886 <p> 887 times 888 </p> 889 </td> 890<td> 891 <p> 892 times 893 </p> 894 </td> 895</tr> 896<tr> 897<td> 898 <p> 899 <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> 900 </p> 901 </td> 902<td> 903 <p> 904 GetProcessTimes 905 </p> 906 </td> 907<td> 908 <p> 909 times 910 </p> 911 </td> 912<td> 913 <p> 914 times 915 </p> 916 </td> 917</tr> 918<tr> 919<td> 920 <p> 921 <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> 922 </p> 923 </td> 924<td> 925 <p> 926 GetProcessTimes 927 </p> 928 </td> 929<td> 930 <p> 931 times 932 </p> 933 </td> 934<td> 935 <p> 936 times 937 </p> 938 </td> 939</tr> 940<tr> 941<td> 942 <p> 943 <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> 944 </p> 945 </td> 946<td> 947 <p> 948 GetProcessTimes 949 </p> 950 </td> 951<td> 952 <p> 953 times 954 </p> 955 </td> 956<td> 957 <p> 958 times 959 </p> 960 </td> 961</tr> 962<tr> 963<td> 964 <p> 965 <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> 966 </p> 967 </td> 968<td> 969 <p> 970 GetThreadTimes 971 </p> 972 </td> 973<td> 974 <p> 975 clock_gettime(pthread_getcpuclockid) 976 </p> 977 </td> 978<td> 979 <p> 980 clock_gettime(pthread_getcpuclockid) 981 </p> 982 </td> 983</tr> 984</tbody> 985</table></div> 986</div> 987<br class="table-break"> 988</div> 989<div class="section"> 990<div class="titlepage"><div><div><h3 class="title"> 991<a name="chrono.appendices.faq"></a><a class="link" href="appendices.html#chrono.appendices.faq" title="Appendix: FAQ">Appendix: FAQ</a> 992</h3></div></div></div> 993<h5> 994<a name="chrono.appendices.faq.h0"></a> 995 <span class="phrase"><a name="chrono.appendices.faq.why_does_process_cpu_clock_sometimes_give_more_cpu_seconds_than_real_seconds_"></a></span><a class="link" href="appendices.html#chrono.appendices.faq.why_does_process_cpu_clock_sometimes_give_more_cpu_seconds_than_real_seconds_">Why 996 does process_cpu_clock sometimes give more cpu seconds than real seconds?</a> 997 </h5> 998<p> 999 Ask your operating system supplier. The results have been inspected with 1000 a debugger, and both for Windows and Linux, that's what the OS appears to 1001 be reporting at times. 1002 </p> 1003<h5> 1004<a name="chrono.appendices.faq.h1"></a> 1005 <span class="phrase"><a name="chrono.appendices.faq.are_integer_overflows_in_the_duration_arithmetic_detected_and_reported_"></a></span><a class="link" href="appendices.html#chrono.appendices.faq.are_integer_overflows_in_the_duration_arithmetic_detected_and_reported_">Are 1006 integer overflows in the duration arithmetic detected and reported?</a> 1007 </h5> 1008<p> 1009 <span class="bold"><strong>Boost.Ratio</strong></span> avoids all kind of overflow 1010 that could result of arithmetic operation and that can be simplified. The 1011 typedefs durations don't detect overflow. You will need a duration representation 1012 that handles overflow. 1013 </p> 1014<h5> 1015<a name="chrono.appendices.faq.h2"></a> 1016 <span class="phrase"><a name="chrono.appendices.faq.which_clocks_should_be_used_to_benchmarking_"></a></span><a class="link" href="appendices.html#chrono.appendices.faq.which_clocks_should_be_used_to_benchmarking_">Which 1017 clocks should be used to benchmarking?</a> 1018 </h5> 1019<p> 1020 Each clock has his own features. It depends on what do you need to benchmark. 1021 Most of the time, you could be interested in using a thread clock, but if 1022 you need to measure code subject to synchronization a process clock would 1023 be better. If you have a multi-process application, a system-wide clock could 1024 be needed. 1025 </p> 1026<h5> 1027<a name="chrono.appendices.faq.h3"></a> 1028 <span class="phrase"><a name="chrono.appendices.faq.which_clocks_should_be_used_for_watching_"></a></span><a class="link" href="appendices.html#chrono.appendices.faq.which_clocks_should_be_used_for_watching_">Which 1029 clocks should be used for watching?</a> 1030 </h5> 1031<p> 1032 For trace purposes, it is probably best to use a system-wide clock. 1033 </p> 1034</div> 1035<div class="section"> 1036<div class="titlepage"><div><div><h3 class="title"> 1037<a name="chrono.appendices.acknowledgements"></a><a class="link" href="appendices.html#chrono.appendices.acknowledgements" title="Appendix: Acknowledgements">Appendix: Acknowledgements</a> 1038</h3></div></div></div> 1039<p> 1040 The library's code was derived from Howard Hinnant's time2_demo prototype. 1041 Many thanks to Howard for making his code available under the Boost license. 1042 The original code was modified by Beman Dawes to conform to Boost conventions. 1043 </p> 1044<p> 1045 time2_demo contained this comment: 1046 </p> 1047<p> 1048 Much thanks to Andrei Alexandrescu, Walter Brown, Peter Dimov, Jeff Garland, 1049 Terry Golubiewski, Daniel Krugler, Anthony Williams. 1050 </p> 1051<p> 1052 The file <boost/chrono_io.hpp> has been adapted from the experimental 1053 header <code class="computeroutput"><span class="special"><</span><span class="identifier">chrono_io</span><span class="special">></span></code> from Howard Hinnant. Thanks for all Howard. 1054 </p> 1055<p> 1056 Howard Hinnant, who is the real author of the library, has provided valuable 1057 feedback and suggestions during the development of the library. In particular, 1058 The chrono_io_io.hpp source has been adapted from the experimental header 1059 <code class="computeroutput"><span class="special"><</span><span class="identifier">chrono_io</span><span class="special">></span></code> from Howard Hinnant. 1060 </p> 1061<p> 1062 The acceptance review of Boost.Ratio took place between November 5th and 1063 15th 2010. Many thanks to Anthony Williams, the review manager, and to all 1064 the reviewers: David Deakins, John Bytheway, Roland Bock and Paul A. Bristow. 1065 </p> 1066<p> 1067 Thanks to Ronald Bock, Andrew Chinoff, Paul A. Bristow and John Bytheway 1068 for his help polishing the documentation. 1069 </p> 1070<p> 1071 Thanks to Tom Tan for reporting some compiler issues with MSVC V10 beta and 1072 MinGW-gcc-4.4.0 and for the many pushing for an homogeneous <code class="computeroutput"><span class="identifier">process_cpu_clock</span></code> clock. 1073 </p> 1074<p> 1075 Thanks to Ronald Bock for reporting Valgind issues and for the many suggestions 1076 he made concerning the documentation. 1077 </p> 1078</div> 1079<div class="section"> 1080<div class="titlepage"><div><div><h3 class="title"> 1081<a name="chrono.appendices.todo"></a><a class="link" href="appendices.html#chrono.appendices.todo" title="Appendix: Future plans">Appendix: Future plans</a> 1082</h3></div></div></div> 1083<h5> 1084<a name="chrono.appendices.todo.h0"></a> 1085 <span class="phrase"><a name="chrono.appendices.todo.for_later_releases"></a></span><a class="link" href="appendices.html#chrono.appendices.todo.for_later_releases">For 1086 later releases</a> 1087 </h5> 1088<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 1089<li class="listitem"> 1090 Add User defined literals for some durations. 1091 </li> 1092<li class="listitem"> 1093 Include chrono::date as defined by Howard Hinnant <a href="http://home.roadrunner.com/~hinnant/bloomington/date.html" target="_top">here</a>. 1094 </li> 1095</ul></div> 1096</div> 1097</div> 1098<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 1099<td align="left"></td> 1100<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> 1101 Distributed under the Boost Software License, Version 1.0. (See accompanying 1102 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>) 1103 </p> 1104</div></td> 1105</tr></table> 1106<hr> 1107<div class="spirit-nav"> 1108<a accesskey="p" href="reference.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="../circular_buffer.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 1109</div> 1110</body> 1111</html> 1112