1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Release Notes</title> 5<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../index.html" title="Chapter 1. Boost.Contract 1.0.0"> 8<link rel="up" href="../index.html" title="Chapter 1. Boost.Contract 1.0.0"> 9<link rel="prev" href="../BOOST_CO_idm46268584298528.html" title="Macro BOOST_CONTRACT_PUBLIC_FUNCTION_OVERRIDE"> 10<link rel="next" href="bibliography.html" title="Bibliography"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="../BOOST_CO_idm46268584298528.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="bibliography.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 27<a name="boost_contract.release_notes"></a><a class="link" href="release_notes.html" title="Release Notes">Release Notes</a> 28</h2></div></div></div> 29<div class="toc"><dl class="toc"> 30<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_1_0_1">Release 1.0.1</a></span></dt> 31<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_1_0_0">Release 1.0.0</a></span></dt> 32<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_5_0">Release 0.5.0</a></span></dt> 33<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_4_1">Release 0.4.1</a></span></dt> 34<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_4_0">Release 0.4.0</a></span></dt> 35<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_3_490">Release 36 0.3.490</a></span></dt> 37<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_3_469">Release 38 0.3.469</a></span></dt> 39<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_2_190">Release 40 0.2.190</a></span></dt> 41<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_1_126">Release 42 0.1.126</a></span></dt> 43<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_1_55">Release 44 0.1.55</a></span></dt> 45<dt><span class="section"><a href="release_notes.html#boost_contract.release_notes.release_0_1_50">Release 46 0.1.50</a></span></dt> 47</dl></div> 48<p> 49 This section contains notes on all releases of this library (from the latest 50 to the oldest). 51 </p> 52<div class="section"> 53<div class="titlepage"><div><div><h3 class="title"> 54<a name="boost_contract.release_notes.release_1_0_1"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_1_0_1" title="Release 1.0.1">Release 1.0.1</a> 55</h3></div></div></div> 56<p> 57 September 12, 2019 58 </p> 59<p> 60 Cleanups and small fixes: 61 </p> 62<div class="orderedlist"><ol class="orderedlist" type="1"> 63<li class="listitem"> 64 Using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">uncaught_exceptions</span></code> on C++17 compilers 65 onward (instead of the now obsolete <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">uncaught_exception</span></code>). 66 </li> 67<li class="listitem"> 68 Fixed a few warnings. 69 </li> 70<li class="listitem"> 71 Removed linking to Boost.System (Boost.System is now a header-only library). 72 </li> 73<li class="listitem"> 74 Added this library to Boost's Continuous Integration (CI). 75 </li> 76<li class="listitem"> 77 Fixed documentation typos. 78 </li> 79</ol></div> 80<p> 81 Released files are part of <a href="https://www.boost.org/users/history/" target="_top">Boost 82 1.72.0</a>. 83 </p> 84</div> 85<div class="section"> 86<div class="titlepage"><div><div><h3 class="title"> 87<a name="boost_contract.release_notes.release_1_0_0"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_1_0_0" title="Release 1.0.0">Release 1.0.0</a> 88</h3></div></div></div> 89<p> 90 January 6, 2018 (Il Giorno della Befana) 91 </p> 92<p> 93 First Boost release: 94 </p> 95<div class="orderedlist"><ol class="orderedlist" type="1"> 96<li class="listitem"> 97 Fixed all tests to pass as Boost regression tests (and marked those that 98 are expected to fail on some specific compiler/platform versions). 99 </li> 100<li class="listitem"> 101 Adjusted build scripts to work within Boost libraries. 102 </li> 103<li class="listitem"> 104 Updated documentation to fit as a Boost library. 105 </li> 106</ol></div> 107<p> 108 Released files are part of <a href="https://www.boost.org/users/history/" target="_top">Boost 109 1.67.0</a>. 110 </p> 111</div> 112<div class="section"> 113<div class="titlepage"><div><div><h3 class="title"> 114<a name="boost_contract.release_notes.release_0_5_0"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_5_0" title="Release 0.5.0">Release 0.5.0</a> 115</h3></div></div></div> 116<p> 117 September 2, 2017 118 </p> 119<p> 120 Contracts without the macros: 121 </p> 122<div class="orderedlist"><ol class="orderedlist" type="1"> 123<li class="listitem"> 124 Using plain C++ code instead of macros to program contracts. 125 <div class="orderedlist"><ol class="orderedlist" type="a"> 126<li class="listitem"> 127 The removed macros very hard to use because they required programmers 128 to learn a domain-specific embedded language that replaced the 129 usual C++ syntax for declaring functions and classes. 130 </li> 131<li class="listitem"> 132 The removed macros also made the code less readable, increased 133 compilation time (because of extensive preprocessor meta-programming), 134 and gave cryptic compiler errors. 135 </li> 136<li class="listitem"> 137 However, the removed macros more correctly specified contracts 138 in code declarations instead of definitions, and they completely 139 removed extra code when contracts were disabled (both of those 140 can be done by the current version of this library but at the cost 141 of manually writing some boiler-plate code which was previous automatically 142 handled by the macros instead, see <a class="link" href="extras.html#boost_contract.extras.separate_body_implementation" title="Separate Body Implementation">Separate 143 Body Implementation</a> and <a class="link" href="extras.html#boost_contract.extras.disable_contract_compilation__macro_interface_" title="Disable Contract Compilation (Macro Interface)">Disable 144 Contract Compilation</a>). 145 </li> 146</ol></div> 147 </li> 148<li class="listitem"> 149 Simplified the library by removing some extra features that were not 150 directly related to contract programming, specifically: 151 <div class="orderedlist"><ol class="orderedlist" type="a"> 152<li class="listitem"> 153 Removed loop variants (because these are rarely if ever used). 154 </li> 155<li class="listitem"> 156 Removed named and deduced parameters (because these can be programmed 157 directly using <a href="http://www.boost.org/doc/libs/release/libs/parameter/doc/html/index.html" target="_top">Boost.Parameter</a>). 158 </li> 159<li class="listitem"> 160 Removed concepts (because these can be programmed directly using 161 <a href="http://www.boost.org/doc/libs/1_65_0/libs/concept_check/concept_check.htm" target="_top">Boost.ConceptCheck</a>). 162 </li> 163<li class="listitem"> 164 Removed emulation of virtual specifiers <code class="computeroutput"><span class="identifier">override</span></code>, 165 <code class="computeroutput"><span class="identifier">final</span></code>, and <code class="computeroutput"><span class="keyword">new</span></code> (because <code class="computeroutput"><span class="identifier">override</span></code> 166 can be programmed directly using C++11, while <code class="computeroutput"><span class="identifier">final</span></code> 167 and <code class="computeroutput"><span class="keyword">new</span></code> are rarely 168 if ever used). 169 </li> 170<li class="listitem"> 171 Removed <code class="computeroutput"><span class="keyword">static_assert</span></code> 172 emulation (because this can be programmed directly using C++11, 173 or using <a href="http://www.boost.org/doc/libs/1_65_0/doc/html/boost_staticassert.html" target="_top">Boost.StaticAssert</a>). 174 </li> 175</ol></div> 176 </li> 177<li class="listitem"> 178 Ensuring that old values and return values are copied only once even 179 when subcontracting is used with multiple inheritance. 180 </li> 181<li class="listitem"> 182 Improved template meta-programming algorithm that searches the inheritance 183 tree for subcontracting when multiple inheritance is used. 184 </li> 185<li class="listitem"> 186 Exception specifications and function-try blocks apply also to exceptions 187 thrown by the contracts, and not just to exceptions thrown by the body. 188 </li> 189<li class="listitem"> 190 Added contracts for exception guarantees (using <code class="computeroutput"><span class="special">.</span><span class="identifier">except</span><span class="special">(...)</span></code>, 191 etc.). 192 </li> 193<li class="listitem"> 194 Added predefined assertion levels for "audit" and "axiom". 195 </li> 196<li class="listitem"> 197 Added <code class="computeroutput"><span class="identifier">call_if</span></code> and <code class="computeroutput"><span class="identifier">condition_if</span></code> (assertions requirements 198 were supported also by previous revisions of this library but they were 199 handled by internal code generated by the contract macros). 200 </li> 201</ol></div> 202<p> 203 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.5.0" target="_top">files</a>. 204 </p> 205</div> 206<div class="section"> 207<div class="titlepage"><div><div><h3 class="title"> 208<a name="boost_contract.release_notes.release_0_4_1"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_4_1" title="Release 0.4.1">Release 0.4.1</a> 209</h3></div></div></div> 210<div class="note"><table border="0" summary="Note"> 211<tr> 212<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td> 213<th align="left">Note</th> 214</tr> 215<tr><td align="left" valign="top"><p> 216 This revision of the library passed Boost formal review and it was accepted 217 into the Boost libraries (see <a href="https://groups.google.com/forum/?fromgroups=#!topic/boost-list/jQ7OjAmos_Y" target="_top">https://groups.google.com/forum/?fromgroups=#!topic/boost-list/jQ7OjAmos_Y</a>). 218 </p></td></tr> 219</table></div> 220<p> 221 August 20, 2012 222 </p> 223<p> 224 Accepted into Boost: 225 </p> 226<div class="orderedlist"><ol class="orderedlist" type="1"> 227<li class="listitem"> 228 Using non-fix-spaced font in Full Table of Contents section. 229 </li> 230<li class="listitem"> 231 Added a couple of notes to the documentation. 232 </li> 233<li class="listitem"> 234 Changed <code class="computeroutput"><span class="identifier">CONTRACT_MEMBER_BODY</span><span class="special">(</span><span class="identifier">class_type</span><span class="special">,</span> <span class="identifier">function_name</span><span class="special">)</span></code> to <code class="computeroutput"><span class="identifier">class_type</span><span class="special">::</span><span class="identifier">CONTRACT_MEMBER_BODY</span><span class="special">(</span><span class="identifier">function_name</span><span class="special">)</span></code> so the macro can also be used to declare 235 derived classes avoiding using the library syntax even when the base 236 class has contracts. 237 </li> 238</ol></div> 239<p> 240 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.4.1" target="_top">files</a>. 241 </p> 242</div> 243<div class="section"> 244<div class="titlepage"><div><div><h3 class="title"> 245<a name="boost_contract.release_notes.release_0_4_0"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_4_0" title="Release 0.4.0">Release 0.4.0</a> 246</h3></div></div></div> 247<p> 248 June 4, 2012 249 </p> 250<p> 251 Simplified syntax, added named parameters and concepts: 252 </p> 253<div class="orderedlist"><ol class="orderedlist" type="1"> 254<li class="listitem"> 255 Simplified syntax by reducing extra parenthesis to the bare necessary 256 minimum (using some of the preprocessor parsing techniques originally 257 introduced by Boost.LocalFunction). 258 </li> 259<li class="listitem"> 260 Postcondition old values only copy the old-of expression (e.g., copy 261 just vector size instead of entire vector). This improves performance 262 and introduces the <code class="computeroutput"><span class="identifier">ConstantCopyConstructible</span></code> 263 requirement just for the old value expression type (e.g., a vector might 264 not be copyable while its size always is because it is an integral type). 265 Removed the <code class="computeroutput"><span class="identifier">copyable</span></code> 266 tag. 267 </li> 268<li class="listitem"> 269 Body defined outside the macros (so compiler-errors for definitions retain 270 their usual meaning). 271 </li> 272<li class="listitem"> 273 Added <code class="computeroutput"><span class="identifier">CONTRACT_CLASS</span></code> 274 macro and removed the need to duplicate declaration elements (do not 275 repeat function declaration, do not repeat class name in function declaration, 276 etc). 277 </li> 278<li class="listitem"> 279 Using <code class="computeroutput"><span class="identifier">_TPL</span></code> macros so 280 to reduce compile-time (instead of internally making all templates contract 281 functions so to use <code class="computeroutput"><span class="keyword">typename</span></code> 282 freely). 283 </li> 284<li class="listitem"> 285 Overloading no longer requires unique parameter names. 286 </li> 287<li class="listitem"> 288 Added C++11-like virtual specifiers. 289 </li> 290<li class="listitem"> 291 Added constant assertions plus constant-expressions for select assertion 292 if-conditions and for loop variants. 293 </li> 294<li class="listitem"> 295 Added named and deduced parameters. 296 </li> 297<li class="listitem"> 298 Added concept checking. 299 </li> 300<li class="listitem"> 301 Removed the interface to use the library without the macro (programmers 302 were required to write too much boiler-plate code for the non-macro interface 303 to be actually usable, plus supporting both the macro and non-macro interfaces 304 limited what the macros could do). 305 </li> 306</ol></div> 307<p> 308 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.4.0" target="_top">files</a>. 309 </p> 310</div> 311<div class="section"> 312<div class="titlepage"><div><div><h3 class="title"> 313<a name="boost_contract.release_notes.release_0_3_490"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_3_490" title="Release 0.3.490">Release 314 0.3.490</a> 315</h3></div></div></div> 316<p> 317 March 7, 2010 318 </p> 319<p> 320 Support for most/all C++ constructs: 321 </p> 322<div class="orderedlist"><ol class="orderedlist" type="1"> 323<li class="listitem"> 324 Added support and examples for <code class="computeroutput"><span class="keyword">volatile</span></code>, 325 <code class="computeroutput"><span class="keyword">auto</span></code>, <code class="computeroutput"><span class="keyword">explicit</span></code>, 326 <code class="computeroutput"><span class="keyword">export</span></code>, <code class="computeroutput"><span class="keyword">extern</span></code>, 327 <code class="computeroutput"><span class="keyword">friend</span></code>, <code class="computeroutput"><span class="keyword">inline</span></code>, 328 <code class="computeroutput"><span class="keyword">struct</span></code>, and <code class="computeroutput"><span class="keyword">throw</span></code> (for exception specifications). 329 </li> 330<li class="listitem"> 331 Documented that <code class="computeroutput"><span class="keyword">union</span></code> cannot 332 be contracted. 333 </li> 334</ol></div> 335<p> 336 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.3.490" target="_top">files</a>. 337 </p> 338</div> 339<div class="section"> 340<div class="titlepage"><div><div><h3 class="title"> 341<a name="boost_contract.release_notes.release_0_3_469"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_3_469" title="Release 0.3.469">Release 342 0.3.469</a> 343</h3></div></div></div> 344<p> 345 February 21, 2010 346 </p> 347<p> 348 Support for most/all contract programming features: 349 </p> 350<div class="orderedlist"><ol class="orderedlist" type="1"> 351<li class="listitem"> 352 Removed use of <code class="computeroutput"><span class="identifier">self</span></code>, 353 <code class="computeroutput"><span class="identifier">variable</span><span class="special">.</span><span class="identifier">now</span></code>, and <code class="computeroutput"><span class="identifier">variable</span><span class="special">.</span><span class="identifier">old</span></code> 354 in writing contracts. Object <code class="computeroutput"><span class="keyword">this</span></code> 355 and variables are now accessed as usual in member functions. <code class="computeroutput"><span class="identifier">CONTRACT_OLDOF</span><span class="special">(</span><span class="identifier">variable</span><span class="special">)</span></code> 356 is used to access old values in postconditions. 357 </li> 358<li class="listitem"> 359 Added <code class="computeroutput"><span class="special">(</span><span class="identifier">precondition</span><span class="special">)</span></code>, <code class="computeroutput"><span class="special">(</span><span class="identifier">postcondition</span><span class="special">)</span></code>, 360 and <code class="computeroutput"><span class="special">(</span><span class="identifier">body</span><span class="special">)</span></code> to specify contracts within the function 361 signature sequence. If no preconditions then <code class="computeroutput"><span class="special">(</span><span class="identifier">precondition</span><span class="special">)</span> 362 <span class="special">({...})</span></code> is simply omitted from 363 the sequence (same for postconditions, body is mandatory instead). For 364 non-void functions, users can name the result argument with <code class="computeroutput"><span class="special">(</span><span class="identifier">postcondition</span><span class="special">)</span> <span class="special">(</span><span class="identifier">result</span><span class="special">-</span><span class="identifier">name</span><span class="special">)</span> <span class="special">({...})</span></code>. 365 </li> 366<li class="listitem"> 367 Changed contract class template to use same syntax as Boost.Function 368 (i.e., <code class="computeroutput"><span class="identifier">F</span></code> function type). 369 </li> 370<li class="listitem"> 371 Added support for free functions and static member functions. 372 </li> 373<li class="listitem"> 374 Added support for subcontracting with multiple inheritance. 375 </li> 376<li class="listitem"> 377 Added static class invariants which are always checked (also at constructors 378 entry, destructor exit, and by static member functions). 379 </li> 380<li class="listitem"> 381 Added block invariants and Eiffel-like loop variants. 382 </li> 383<li class="listitem"> 384 Added handlers to customize action on contract failure (default to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>). 385 </li> 386<li class="listitem"> 387 Removed feature for automatic contract documentation using Doxygen (this 388 is not compatible with added <code class="computeroutput"><span class="special">(</span><span class="identifier">precondition</span><span class="special">)</span></code>, 389 <code class="computeroutput"><span class="special">(</span><span class="identifier">postcondition</span><span class="special">)</span></code>, and <code class="computeroutput"><span class="special">(</span><span class="identifier">body</span><span class="special">)</span></code> 390 because Doxygen preprocessor is not capable to handle Boost.Preprocessor 391 sequences). 392 </li> 393<li class="listitem"> 394 Rewritten entire documentation (now using Boost.QuickBook instead of 395 Doxygen). 396 </li> 397</ol></div> 398<p> 399 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.3.469" target="_top">files</a>. 400 </p> 401</div> 402<div class="section"> 403<div class="titlepage"><div><div><h3 class="title"> 404<a name="boost_contract.release_notes.release_0_2_190"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_2_190" title="Release 0.2.190">Release 405 0.2.190</a> 406</h3></div></div></div> 407<p> 408 November 21, 2009 409 </p> 410<p> 411 Compiled on both GCC and MSVC: 412 </p> 413<div class="orderedlist"><ol class="orderedlist" type="1"> 414<li class="listitem"> 415 Compiled using both GCC (Linux and Cygwin) and MSVC (Windows XP). 416 </li> 417<li class="listitem"> 418 Required to use void to specify empty function argument list. This is 419 to comply with C++03 standard that does not allow to pass empty macro 420 parameters so it does not support empty preprocessor sequences <code class="computeroutput"><span class="special">()</span></code>. 421 </li> 422</ol></div> 423<p> 424 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.2.190" target="_top">files</a>. 425 </p> 426</div> 427<div class="section"> 428<div class="titlepage"><div><div><h3 class="title"> 429<a name="boost_contract.release_notes.release_0_1_126"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_1_126" title="Release 0.1.126">Release 430 0.1.126</a> 431</h3></div></div></div> 432<p> 433 June 17, 2009 434 </p> 435<p> 436 Added documentation: 437 </p> 438<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> 439 Completed first documentation draft. 440 </li></ol></div> 441<p> 442 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.1.126" target="_top">files</a>. 443 </p> 444</div> 445<div class="section"> 446<div class="titlepage"><div><div><h3 class="title"> 447<a name="boost_contract.release_notes.release_0_1_55"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_1_55" title="Release 0.1.55">Release 448 0.1.55</a> 449</h3></div></div></div> 450<p> 451 April 19, 2009 452 </p> 453<p> 454 Cleaned-up first release: 455 </p> 456<div class="orderedlist"><ol class="orderedlist" type="1"> 457<li class="listitem"> 458 Reorganized files to cleanup root directory. 459 </li> 460<li class="listitem"> 461 Added installation program. 462 </li> 463</ol></div> 464<p> 465 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.1.55" target="_top">files</a>. 466 </p> 467</div> 468<div class="section"> 469<div class="titlepage"><div><div><h3 class="title"> 470<a name="boost_contract.release_notes.release_0_1_50"></a><a class="link" href="release_notes.html#boost_contract.release_notes.release_0_1_50" title="Release 0.1.50">Release 471 0.1.50</a> 472</h3></div></div></div> 473<p> 474 April 19, 2009 475 </p> 476<p> 477 First release: 478 </p> 479<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> 480 First public release. 481 </li></ol></div> 482<p> 483 Released <a href="https://github.com/boostorg/contract/releases/tag/v0.1.50" target="_top">files</a>. 484 </p> 485</div> 486</div> 487<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 488<td align="left"></td> 489<td align="right"><div class="copyright-footer">Copyright © 2008-2019 Lorenzo Caminiti<p> 490 Distributed under the Boost Software License, Version 1.0 (see accompanying 491 file LICENSE_1_0.txt or a copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 492 </p> 493</div></td> 494</tr></table> 495<hr> 496<div class="spirit-nav"> 497<a accesskey="p" href="../BOOST_CO_idm46268584298528.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="bibliography.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 498</div> 499</body> 500</html> 501