Added more exception (non-)safety notes

[SVN r14667]
This commit is contained in:
Daryle Walker
2002-08-04 20:09:35 +00:00
parent fdc0f5f5ab
commit 8b80cb3111

View File

@ -215,14 +215,14 @@ attribute back to the saved value.</p>
</tr>
<tr>
<td><code>boost::io::basic_ios_iostate_saver&lt;Ch, Tr&gt;</code></td>
<td>Success state of the stream <a href="#Note1">[1]</a></td>
<td>Failure state of the stream <a href="#Note1">[1]</a></td>
<td><code>std::ios_base::iostate</code></td>
<td><code>rdstate</code></td>
<td><code>clear</code></td>
</tr>
<tr>
<td><code>boost::io::basic_ios_exception_saver&lt;Ch, Tr&gt;</code></td>
<td>Which success states trigger an exception <a href="#Note1">[1]</a></td>
<td>Which failure states trigger an exception <a href="#Note1">[1]</a></td>
<td><code>std::ios_base::iostate</code></td>
<td><code>exceptions</code></td>
<td><code>exceptions</code></td>
@ -236,7 +236,7 @@ attribute back to the saved value.</p>
</tr>
<tr>
<td><code>boost::io::basic_ios_rdbuf_saver&lt;Ch, Tr&gt;</code></td>
<td>Stream buffer associated with the stream</td>
<td>Stream buffer associated with the stream <a href="#Note2">[2]</a></td>
<td><code>std::basic_streambuf&lt;Ch, Tr&gt; *</code></td>
<td><code>rdbuf</code></td>
<td><code>rdbuf</code></td>
@ -250,7 +250,7 @@ attribute back to the saved value.</p>
</tr>
<tr>
<td><code>boost::io::basic_ios_locale_saver&lt;Ch, Tr&gt;</code></td>
<td>Locale information associated with the stream <a href="#Note2">[2]</a></td>
<td>Locale information associated with the stream <a href="#Note3">[3]</a></td>
<td><code>std::locale</code></td>
<td><code>getloc</code> (from <code>std::ios_base</code>)</td>
<td><code>imbue</code> (from <code>std::basic_ios&lt;Ch, Tr&gt;</code>)</td>
@ -260,12 +260,20 @@ attribute back to the saved value.</p>
<h3>Notes</h3>
<ol>
<li>When the success state flags and/or the success state exception
watching flags are changed, an exception is thrown if a new
match occurs among the two sets of flags. This could mean that
the <a name="Note1">destructor of these class templates may
throw</a>.</li>
<li>The <a name="Note2">saver for the locale uses the
<li>When the failure state flags and/or the failure state exception
watching flags are changed, an exception is thrown if a match
occurs among the two sets of flags. This could mean that
the <a name="Note1">constructor or destructor of these class
templates may throw</a>.</li>
<li>When the associated stream buffer is changed, the stream's
failure state set is reset to &quot;good&quot; if the given stream
buffer's address is non-NULL, but the &quot;bad&quot; failure
state is set if that address is NULL. Given a NULL stream
buffer address, an exception is thrown if the &quot;bad&quot;
failure state is being watched. This could mean that the <a
name="Note2">constructor or destructor of this class template
may throw</a>.</li>
<li>The <a name="Note3">saver for the locale uses the
<code>std::basic_ios&lt;Ch, Tr&gt;</code> class to extract their
information</a>, although it could have used the functionality
in <code>std::ios_base</code>. The problem is that the versions