Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / contract / doc / html / boost / contract / check.html
index 7c5f8a3..02bce52 100644 (file)
 <span class="keyword">class</span> <a class="link" href="check.html" title="Class check">check</a> <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
   <span class="comment">// <a class="link" href="check.html#boost.contract.checkconstruct-copy-destruct">construct/copy/destruct</a></span>
-  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> F<span class="special">&gt;</span> <a class="link" href="check.html#idm45123870741424-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="identifier">F</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
-  <a class="link" href="check.html#idm45123870734048-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="check.html" title="Class check">check</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> F<span class="special">&gt;</span> <a class="link" href="check.html#idm45394999887520-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="identifier">F</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+  <a class="link" href="check.html#idm45394999880144-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="check.html" title="Class check">check</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> VirtualResult<span class="special">&gt;</span> 
-    <a class="link" href="check.html#idm45123870731152-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify__idm45123870039968.html" title="Class template specify_precondition_old_postcondition_except">specify_precondition_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+    <a class="link" href="check.html#idm45394999877248-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify__idm45394999179040.html" title="Class template specify_precondition_old_postcondition_except">specify_precondition_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> VirtualResult<span class="special">&gt;</span> 
-    <a class="link" href="check.html#idm45123870722000-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify__idm45123870103104.html" title="Class template specify_old_postcondition_except">specify_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+    <a class="link" href="check.html#idm45394999867968-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify__idm45394999245856.html" title="Class template specify_old_postcondition_except">specify_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> VirtualResult<span class="special">&gt;</span> 
-    <a class="link" href="check.html#idm45123870711072-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify__idm45123870066880.html" title="Class template specify_postcondition_except">specify_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
-  <a class="link" href="check.html#idm45123870700112-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify_except.html" title="Class specify_except">specify_except</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
-  <a class="link" href="check.html#idm45123870690944-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify_nothing.html" title="Class specify_nothing">specify_nothing</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
-  <a class="link" href="check.html#idm45123870681760-bb"><span class="special">~</span><span class="identifier">check</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
+    <a class="link" href="check.html#idm45394999856928-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify__idm45394999207792.html" title="Class template specify_postcondition_except">specify_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+  <a class="link" href="check.html#idm45394999845840-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify_except.html" title="Class specify_except">specify_except</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+  <a class="link" href="check.html#idm45394999836656-bb"><span class="identifier">check</span></a><span class="special">(</span><a class="link" href="specify_nothing.html" title="Class specify_nothing">specify_nothing</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+  <a class="link" href="check.html#idm45394999827456-bb"><span class="special">~</span><span class="identifier">check</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
 <span class="special">}</span><span class="special">;</span></pre></div>
 <div class="refsect1">
-<a name="idm45751730909168"></a><h2>Description</h2>
+<a name="idm45707997461088"></a><h2>Description</h2>
 <p>In general, when this object is constructed it checks class invariants at entry, preconditions, and makes old value copies at body. When it is destructed, it checks class invariants at exist, postconditions, and exception guarantees. This object enforces the following (see  <a class="link" href="../../boost_contract/contract_programming_overview.html" title="Contract Programming Overview"> Contract Programming Overview</a>):</p>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Postconditions are checked only if the body does not throw an exception. </p></li>
 <li class="listitem"><p>Exceptions guarantees are checked only if the body throws an exception. </p></li>
 <li class="listitem"><p>Constructor entry never checks class invariants. </p></li>
-<li class="listitem"><p>Destructor exit checks class invariants only if the body throws an exception (even if destructors should usually not be programmed to throw exceptions in C++). </p></li>
+<li class="listitem"><p>Destructor exit checks class invariants only if the body throws an exception (even if destructors should usually not be programmed to throw exceptions in C++ and they are implicitly declared <code class="computeroutput">noexcept</code> since C++11). </p></li>
 <li class="listitem"><p>Static invariants are always checked at entry and exit (and regardless of the body throwing exceptions or not).</p></li>
 </ul></div>
 <p>
-When used this way, this object is usually constructed and initialized to the return value of one of the contract functions  <code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code>, <code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code>,  <code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code>, or  <code class="computeroutput"><a class="link" href="public_f_idm45123869756752.html" title="Function template public_function">boost::contract::public_function</a></code>. In addition, this object can be constructed from a nullary functor that is used to program implementation checks.</p>
+When used this way, this object is constructed and initialized to the return value of one of the contract functions <code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code>,  <code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code>, <code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code>, or <code class="computeroutput"><a class="link" href="public_f_idm45394998885120.html" title="Function template public_function">boost::contract::public_function</a></code>. In addition to that, this object can be constructed from a nullary functor when it is used to program implementation checks.</p>
 <p><span class="bold"><strong>See Also:</strong></span></p>
 <p> <a class="link" href="../../boost_contract/tutorial.html" title="Tutorial"> Tutorial</a>,  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.implementation_checks" title="Implementation Checks"> Implementation Checks</a> </p>
 <p>
@@ -66,13 +66,13 @@ When used this way, this object is usually constructed and initialized to the re
 <p>
 </p>
 <div class="refsect2">
-<a name="idm45751730894752"></a><h3>
+<a name="idm45707997445984"></a><h3>
 <a name="boost.contract.checkconstruct-copy-destruct"></a><code class="computeroutput">check</code> 
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem">
-<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> F<span class="special">&gt;</span> <a name="idm45123870741424-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="identifier">F</span> <span class="keyword">const</span> <span class="special">&amp;</span> f<span class="special">)</span><span class="special">;</span></pre>Construct this object for implementation checks. <p>This can be used to program checks within implementation code (body, etc.). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
+<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> F<span class="special">&gt;</span> <a name="idm45394999887520-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="identifier">F</span> <span class="keyword">const</span> <span class="special">&amp;</span> f<span class="special">)</span><span class="special">;</span></pre>Construct this object for implementation checks. <p>This can be used to program checks within implementation code (body, etc.). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
 <p><span class="bold"><strong>Throws:</strong></span> This can throw in case programmers specify contract failure handlers that throw exceptions instead of terminating the program (see  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.throw_on_failures__and__noexcept__" title="Throw on Failures (and noexcept)">
             Throw on Failure</a>).</p>
 <p>
@@ -99,7 +99,7 @@ When used this way, this object is usually constructed and initialized to the re
 </table></div>
 </li>
 <li class="listitem">
-<pre class="literallayout"><a name="idm45123870734048-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="check.html" title="Class check">check</a> <span class="keyword">const</span> <span class="special">&amp;</span> other<span class="special">)</span><span class="special">;</span></pre>Construct this object copying it from the specified one. <p>This object will check the contract, the copied-from object will not (i.e., contract check ownership is transferred from the copied object to the new object being created by this constructor).</p>
+<pre class="literallayout"><a name="idm45394999880144-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="check.html" title="Class check">check</a> <span class="keyword">const</span> <span class="special">&amp;</span> other<span class="special">)</span><span class="special">;</span></pre>Construct this object copying it from the specified one. <p>This object will check the contract, the copied-from object will not (i.e., contract check ownership is transferred from the copied object to the new object being created by this constructor).</p>
 <p>
 </p>
 <div class="variablelist"><table border="0" class="variablelist compact">
@@ -124,7 +124,7 @@ When used this way, this object is usually constructed and initialized to the re
 </li>
 <li class="listitem">
 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> VirtualResult<span class="special">&gt;</span> 
-  <a name="idm45123870731152-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify__idm45123870039968.html" title="Class template specify_precondition_old_postcondition_except">specify_precondition_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry (if those apply to the specified contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
+  <a name="idm45394999877248-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify__idm45394999179040.html" title="Class template specify_precondition_old_postcondition_except">specify_precondition_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry (if those were specified for the given contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
 <p><span class="bold"><strong>Throws:</strong></span> This can throw in case programmers specify contract failure handlers that throw exceptions instead of terminating the program (see  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.throw_on_failures__and__noexcept__" title="Throw on Failures (and noexcept)">
             Throw on Failure</a>).</p>
 <p>
@@ -145,7 +145,7 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">contract</code></span></p></td>
-<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code> or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45123869756752.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
+<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code> or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45394998885120.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
 </tr></tbody>
 </table></div></td>
 </tr>
@@ -158,7 +158,7 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">VirtualResult</code></span></p></td>
-<td><p>Return type of the enclosing function declaring the contract if that is either a virtual or an overriding public function. Otherwise, this is always <code class="computeroutput">void</code>. </p></td>
+<td><p>Return type of the enclosing function declaring the contract if that is either a virtual or an overriding public function, otherwise this is always <code class="computeroutput">void</code>. (Usually this template parameter is automatically deduced by C++ and it does not need to be explicitly specified by programmers.) </p></td>
 </tr></tbody>
 </table></div></td>
 </tr>
@@ -167,7 +167,7 @@ When used this way, this object is usually constructed and initialized to the re
 </li>
 <li class="listitem">
 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> VirtualResult<span class="special">&gt;</span> 
-  <a name="idm45123870722000-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify__idm45123870103104.html" title="Class template specify_old_postcondition_except">specify_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions (if any of those apply to the specified contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
+  <a name="idm45394999867968-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify__idm45394999245856.html" title="Class template specify_old_postcondition_except">specify_old_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions (if any of those were specified for the given contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
 <p><span class="bold"><strong>Throws:</strong></span> This can throw in case programmers specify contract failure handlers that throw exceptions instead of terminating the program (see  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.throw_on_failures__and__noexcept__" title="Throw on Failures (and noexcept)">
             Throw on Failure</a>).</p>
 <p>
@@ -188,7 +188,7 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">contract</code></span></p></td>
-<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45123869756752.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
+<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45394998885120.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
 </tr></tbody>
 </table></div></td>
 </tr>
@@ -201,7 +201,7 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">VirtualResult</code></span></p></td>
-<td><p>Return type of the enclosing function declaring the contract if that is either a virtual or an overriding public function. Otherwise, this is always <code class="computeroutput">void</code>. </p></td>
+<td><p>Return type of the enclosing function declaring the contract if that is either a virtual or an overriding public function, otherwise this is always <code class="computeroutput">void</code>. (Usually this template parameter is automatically deduced by C++ and it does not need to be explicitly specified by programmers.) </p></td>
 </tr></tbody>
 </table></div></td>
 </tr>
@@ -210,7 +210,7 @@ When used this way, this object is usually constructed and initialized to the re
 </li>
 <li class="listitem">
 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> VirtualResult<span class="special">&gt;</span> 
-  <a name="idm45123870711072-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify__idm45123870066880.html" title="Class template specify_postcondition_except">specify_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions then it makes old value copies at body (if any of those apply to the specified contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
+  <a name="idm45394999856928-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify__idm45394999207792.html" title="Class template specify_postcondition_except">specify_postcondition_except</a><span class="special">&lt;</span> <span class="identifier">VirtualResult</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions then it makes old value copies at body (if any of those were specified for the given contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
 <p><span class="bold"><strong>Throws:</strong></span> This can throw in case programmers specify contract failure handlers that throw exceptions instead of terminating te program (see  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.throw_on_failures__and__noexcept__" title="Throw on Failures (and noexcept)">
             Throw on Failure</a>).</p>
 <p>
@@ -231,7 +231,7 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">contract</code></span></p></td>
-<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45123869756752.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
+<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45394998885120.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
 </tr></tbody>
 </table></div></td>
 </tr>
@@ -244,7 +244,7 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">VirtualResult</code></span></p></td>
-<td><p>Return type of the enclosing function declaring the contract if that is either a virtual or an overriding public function. Otherwise, this is always <code class="computeroutput">void</code>. </p></td>
+<td><p>Return type of the enclosing function declaring the contract if that is either a virtual or an overriding public function, otherwise this is always <code class="computeroutput">void</code>. (Usually this template parameter is automatically deduced by C++ and it does not need to be explicitly specified by programmers.) </p></td>
 </tr></tbody>
 </table></div></td>
 </tr>
@@ -252,7 +252,7 @@ When used this way, this object is usually constructed and initialized to the re
 </table></div>
 </li>
 <li class="listitem">
-<pre class="literallayout"><a name="idm45123870700112-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify_except.html" title="Class specify_except">specify_except</a> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions then it makes old value copies at body, plus the destructor of this object will check postconditions in this case (if any of those apply to the specified contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
+<pre class="literallayout"><a name="idm45394999845840-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify_except.html" title="Class specify_except">specify_except</a> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions then it makes old value copies at body, plus the destructor of this object will also check postconditions in this case (if any of those were specified for the given contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
 <p><span class="bold"><strong>Throws:</strong></span> This can throw in case programmers specify contract failure handlers that throw exceptions instead of terminating the program (see  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.throw_on_failures__and__noexcept__" title="Throw on Failures (and noexcept)">
             Throw on Failure</a>).</p>
 <p>
@@ -272,14 +272,14 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">contract</code></span></p></td>
-<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45123869756752.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
+<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45394998885120.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
 </tr></tbody>
 </table></div></td>
 </tr></tbody>
 </table></div>
 </li>
 <li class="listitem">
-<pre class="literallayout"><a name="idm45123870690944-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify_nothing.html" title="Class specify_nothing">specify_nothing</a> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions then it makes old value copies at body, plus the destructor of this object will check postconditions and exception guarantees in this case (if any of those apply to the specified contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
+<pre class="literallayout"><a name="idm45394999836656-bb"></a><span class="identifier">check</span><span class="special">(</span><a class="link" href="specify_nothing.html" title="Class specify_nothing">specify_nothing</a> <span class="keyword">const</span> <span class="special">&amp;</span> contract<span class="special">)</span><span class="special">;</span></pre>Construct this object to check the specified contract. <p>This checks class invariants at entry and preconditions then it makes old value copies at body, plus the destructor of this object will also check postconditions and exception guarantees in this case (if any of those were specified for the given contract). This constructor is not declared <code class="computeroutput">explicit</code> so initializations can use assignment syntax <code class="computeroutput">=</code>.</p>
 <p><span class="bold"><strong>Throws:</strong></span> This can throw in case programmers specify contract failure handlers that throw exceptions instead of terminating the program (see  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.throw_on_failures__and__noexcept__" title="Throw on Failures (and noexcept)">
             Throw on Failure</a>).</p>
 <p>
@@ -299,14 +299,14 @@ When used this way, this object is usually constructed and initialized to the re
 </colgroup>
 <tbody><tr>
 <td><p><span class="term"><code class="computeroutput">contract</code></span></p></td>
-<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45123869756752.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
+<td><p>Contract to be checked (usually the return value of  <code class="computeroutput"><code class="computeroutput"><a class="link" href="function.html" title="Function function">boost::contract::function</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="constructor.html" title="Function template constructor">boost::contract::constructor</a></code></code>,  <code class="computeroutput"><code class="computeroutput"><a class="link" href="destructor.html" title="Function template destructor">boost::contract::destructor</a></code></code>, or  <code class="computeroutput"><code class="computeroutput"><a class="link" href="public_f_idm45394998885120.html" title="Function template public_function">boost::contract::public_function</a></code></code>).</p></td>
 </tr></tbody>
 </table></div></td>
 </tr></tbody>
 </table></div>
 </li>
 <li class="listitem">
-<pre class="literallayout"><a name="idm45123870681760-bb"></a><span class="special">~</span><span class="identifier">check</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>Destruct this object. <p>This checks class invariants at exit and either postconditions when the enclosing function body did not throw an exception, or exception guarantees when the function body threw an exception (that is if class invariants, postconditions, and exception guarantees respectively apply to the contract parameter specified when constructing this object).</p>
+<pre class="literallayout"><a name="idm45394999827456-bb"></a><span class="special">~</span><span class="identifier">check</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>Destruct this object. <p>This checks class invariants at exit and either postconditions when the enclosing function body did not throw an exception, or exception guarantees when the function body threw an exception (if class invariants, postconditions, and exception guarantees respectively were specified for the enclosing class and the contract parameter given when constructing this object).</p>
 <p><span class="bold"><strong>Throws:</strong></span> This can throw in case programmers specify contract failure handlers that throw exceptions instead of terminating the program (see  <a class="link" href="../../boost_contract/advanced.html#boost_contract.advanced.throw_on_failures__and__noexcept__" title="Throw on Failures (and noexcept)">
             Throw on Failure</a>). (This is declared <code class="computeroutput">noexcept(false)</code> since C++11.) </p>
 </li>
@@ -316,7 +316,7 @@ When used this way, this object is usually constructed and initialized to the re
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2008-2018 Lorenzo Caminiti<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2008-2019 Lorenzo Caminiti<p>
         Distributed under the Boost Software License, Version 1.0 (see accompanying
         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>)
       </p>