$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r57255 - sandbox/filesystem-v3/libs/filesystem/doc
From: bdawes_at_[hidden]
Date: 2009-10-30 17:28:14
Author: bemandawes
Date: 2009-10-30 17:28:14 EDT (Fri, 30 Oct 2009)
New Revision: 57255
URL: http://svn.boost.org/trac/boost/changeset/57255
Log:
filesystem-v3: work-in-progress
Text files modified: 
   sandbox/filesystem-v3/libs/filesystem/doc/reference.html |   369 ++++++++++++++++++++++++--------------- 
   1 files changed, 223 insertions(+), 146 deletions(-)
Modified: sandbox/filesystem-v3/libs/filesystem/doc/reference.html
==============================================================================
--- sandbox/filesystem-v3/libs/filesystem/doc/reference.html	(original)
+++ sandbox/filesystem-v3/libs/filesystem/doc/reference.html	2009-10-30 17:28:14 EDT (Fri, 30 Oct 2009)
@@ -257,73 +257,111 @@
 
       // operational functions
 
-</span>      path         complete(const path& p, const path& base, system::error_code& ec=throws());
-      path         complete(const path& p, system::error_code& ec=throws());
-      void         copy_file(const path& from, const path& to,
-                             BOOST_SCOPED_ENUM(copy_option) option, system::error_code& ec=throws());
-      void         copy_file(const path& from, const path& to, system::error_code& ec=throws());
-      bool         create_directories(const path& p, system::error_code& ec=throws());
-      bool         create_directory(const path& p, system::error_code& ec=throws());
-      void         create_hard_link(const path& p, const path& new_link, system::error_code& ec=throws());
-<span style="background-color: #FFFFFF">      void         create_symlink(const path& </span><span style="background-color: #FFFFFF">p, const path& new_link</span>, system::error_code& ec=throws()<span style="background-color: #FFFFFF">);
-</span>      path         current_path(system::error_code& ec=throws());
-      void         current_path(const path& p, system::error_code& ec=throws());
+</span>      path         complete(const path& p, const path& base, system::error_code& ec);
+      path         complete(const path& p, system::error_code& ec);
+
+      void         copy_file(const path& from, const path& to);
+      void         copy_file(const path& from, const path& to, system::error_code& ec);
+      void         copy_file(const path& from, const path& to, BOOST_SCOPED_ENUM(copy_option) option);
+      void         copy_file(const path& from, const path& to, BOOST_SCOPED_ENUM(copy_option) option,
+                             system::error_code& ec);
+
+      bool         create_directories(const path& p);
+      bool         create_directories(const path& p, system::error_code& ec);
+
+      bool         create_directory(const path& p);
+      bool         create_directory(const path& p, system::error_code& ec);
+
+      void         create_hard_link(const path& p, const path& new_link);
+      void         create_hard_link(const path& p, const path& new_link, system::error_code& ec);
+
+<span style="background-color: #FFFFFF">      void         create_symlink(const path& p, const path& new_link);
+      void         create_symlink(const path& p, const path& new_link</span>, system::error_code& ec<span style="background-color: #FFFFFF">);
+
+</span>      path         current_path();
+      path         current_path(system::error_code& ec);
+      void         current_path(const path& p);
+      void         current_path(const path& p, system::error_code& ec);
+
       bool         exists(file_status s);
-      bool         exists(const path& p, system::error_code& ec=throws());
-      bool         equivalent(const path& p1, const path& p2, system::error_code& ec=throws());
-      <span style="background-color: #FFFFFF; ">uintmax_t</span>    file_size(const path& p, system::error_code& ec=throws());
-      const path&  initial_path(system::error_code& ec=throws());
+      bool         exists(const path& p);
+      bool         exists(const path& p, system::error_code& ec);
+
+      bool         equivalent(const path& p1, const path& p2);
+      bool         equivalent(const path& p1, const path& p2, system::error_code& ec);
+
+      <span style="background-color: #FFFFFF; ">uintmax_t</span>    file_size(const path& p);
+      <span style="background-color: #FFFFFF; ">uintmax_t</span>    file_size(const path& p, system::error_code& ec);
+
+      const path&  initial_path();
+      const path&  initial_path(system::error_code& ec);
+
       bool         is_directory(file_status s);
-      bool         is_directory(const path& p, system::error_code& ec=throws());
-      bool         is_empty(const path& p, system::error_code& ec=throws());
+      bool         is_directory(const path& p);
+      bool         is_directory(const path& p, system::error_code& ec);
+
+      bool         is_empty(const path& p);
+      bool         is_empty(const path& p, system::error_code& ec);
+
       bool         is_other(file_status s);
-      bool         is_other(const path& p, system::error_code& ec=throws());
+      bool         is_other(const path& p,);
+      bool         is_other(const path& p, system::error_code& ec);
+
       bool         is_regular_file(file_status s); 
-      bool         is_regular_file(const path& p, system::error_code& ec=throws());
+      bool         is_regular_file(const path& p);
+      bool         is_regular_file(const path& p, system::error_code& ec);
+
       bool         is_symlink(file_status s);
-      bool         is_symlink(const path& p, system::error_code& ec=throws());
-      std::time_t  last_write_time(const path& p, system::error_code& ec=throws());
-      void         last_write_time(const path& p, const std::time_t new_time, system::error_code& ec=throws());
-      bool         remove(const path& p, system::error_code& ec=throws());
-      uintmax_t    remove_all(const path& p, system::error_code& ec=throws());
-      void         rename(const path& from, const path& to, system::error_code& ec=throws());
-<span style="background-color: #FFFFFF">      space_info   space(const path& p</span>, system::error_code& ec=throws()<span style="background-color: #FFFFFF">);</span><span style="background-color: #FFFF00">
-</span>      file_status  status(const path& p, system::error_code& ec=throws());
+      bool         is_symlink(const path& p);
+      bool         is_symlink(const path& p, system::error_code& ec);
+
+      std::time_t  last_write_time(const path& p);
+      std::time_t  last_write_time(const path& p, system::error_code& ec);
+      void         last_write_time(const path& p, const std::time_t new_time);
+      void         last_write_time(const path& p, const std::time_t new_time, system::error_code& ec);
+
+      bool         remove(const path& p);
+      bool         remove(const path& p, system::error_code& ec);
+
+      uintmax_t    remove_all(const path& p);
+      uintmax_t    remove_all(const path& p, system::error_code& ec);
+
+      void         rename(const path& from, const path& to);
+      void         rename(const path& from, const path& to, system::error_code& ec);
+
+<span style="background-color: #FFFFFF">      space_info   space(const path& p);
+      space_info   space(const path& p</span>, system::error_code& ec<span style="background-color: #FFFFFF">);
+</span><span style="background-color: #FFFF00">
+</span>      file_status  status(const path& p);
+      file_status  status(const path& p, system::error_code& ec);
+
       bool         status_known(file_status s);
-      file_status  symlink_status(const path& p, system::error_code& ec=throws());
-      path         system_complete(const path& p, system::error_code& ec=throws());
+
+      file_status  symlink_status(const path& p);
+      file_status  symlink_status(const path& p, system::error_code& ec);
+
+      path         system_complete(const path& p);
+      path         system_complete(const path& p, system::error_code& ec);
 
     } // namespace filesystem
   } // namespace boost</pre>
-<h3><a name="Error-handling">Error reporting</a></h3>
-<p>Functions in this library may throw exceptions as described in this section. 
-Such exceptions are not explicitly described in each function's <i>Throws</i> 
-element.</p>
-<p>Certain functions in this library are specified as having an argument of type
-<code>system::error_code& ec</code>. This argument determines how errors are 
-reported by the implementation when a call to an operating system or other 
-underlying API results in an error that prevents the library function from 
-meeting its specifications:</p>
-<ul>
-  <li>If <code>&ec == &throws()</code>, the function throws an exception of type
-  <code>filesystem_error.</code></li>
-  <li>Otherwise, the function sets <code>ec</code> to an error_code representing 
-  the error that occurred.</li>
-</ul>
-<p>If an error does not occur and <code>&ec != &throws()</code>, <code>ec.clear()</code> 
-is called.</p>
-<p>Certain failures are reported by throwing an exception, regardless of the 
-value of the <code>ec</code> argument:</p>
-<ul>
+<h4><a name="Error-handling">Error reporting</a></h4>
+<p>Filesystem functions report errors in one of two ways:</p>
+<blockquote>
+<p>Functions not having an argument of type
+<code>system::error_code& ec</code> report errors by throwing exceptions:</p>
+  <ul>
+  <li>Exceptions of type <code>system_error</code> are thrown when a call by the 
+  implementation to an operating system or other underlying API results in an 
+  error that prevents the function from meeting its specifications.</li>
   <li>Failure to allocate storage is reported as described in the C++ standard, 
   17.6.4.10 [res.on.exception.handling].</li>
-  <li>Class <code>path</code> failures are reported by throwing an exception of 
-  type <code>system_error</code>.</li>
-</ul>
-<p>[<i>Note: </i>Because hardware failures, network failures, race conditions, and a plethora of 
-other errors occur frequently in file system operations, users should be aware 
-that any filesystem operational function, no matter how innocuous, may encounter 
-an error.  <i>-- end note</i>]</p>
+  </ul>
+  <p>Functions having an argument of type
+<code>system::error_code& ec</code> report errors by setting ec as appropriate 
+  for the specific error encountered. If no error is encountered, <code>ec.clear()</code> 
+  is called.</p>
+</blockquote>
 <h3><a name="Class-template-path">Class <code>path</code></a></h3>
 <p>An object of class <code>path</code> represents a path, 
 and contains a pathname in the
@@ -421,7 +459,7 @@
         iterator end() const;
         
         // encoding conversion
-        static std::locale imbue( const std::locale & loc );
+        static std::locale imbue( const std::locale& loc );
         static const codecvt_type & codecvt()
       };
 
@@ -1362,8 +1400,8 @@
 
         // observers
         const path&  path() const;
-<span style="background-color: #FFFFFF">        file_status  status(system::error_code& ec=throws()) const;
-        file_status  symlink_status(system::error_code& ec=throws()) const;
+<span style="background-color: #FFFFFF">        file_status  status(system::error_code& ec) const;
+        file_status  symlink_status(system::error_code& ec) const;
 </span><span style="background-color: #FFFF00">
 </span>      private:
         path_type            m_path;           // for exposition only
@@ -1483,7 +1521,7 @@
 <blockquote>
   <p><i>Returns:</i> <code>m_path</code></p>
 </blockquote>
-<pre><span style="background-color: #FFFFFF">file_status status(system::error_code& ec=throws()) const;</span></pre>
+<pre><span style="background-color: #FFFFFF">file_status status(system::error_code& ec) const;</span></pre>
 <blockquote>
 <p><span style="font-style: italic; background-color: #FFFFFF">Effects:</span><span style="background-color: #FFFFFF"> 
 As if,</span></p>
@@ -1498,7 +1536,7 @@
   </blockquote>
   <p><span style="background-color: #FFFFFF"><i>Returns:</i> <code>m_status</code></span></p>
 </blockquote>
-<pre><span style="background-color: #FFFFFF">file_status  symlink_status(system::error_code& ec=throws()) const;</span></pre>
+<pre><span style="background-color: #FFFFFF">file_status  symlink_status(system::error_code& ec) const;</span></pre>
 <blockquote>
 <p><span style="font-style: italic; background-color: #FFFFFF">Effects:</span><span style="background-color: #FFFFFF"> 
 As if,</span></p>
@@ -1527,7 +1565,7 @@
 
         // constructors
         directory_iterator();  // creates the "end" iterator
-        explicit directory_iterator(const path& p, system::error_code& ec=throws());
+        explicit directory_iterator(const path& p, system::error_code& ec);
 
        ~directory_iterator();
 
@@ -1604,7 +1642,7 @@
 
 </blockquote>
 
-<pre><code>explicit directory_iterator(</code>const path& p, system::error_code& ec=throws()<code>);</code></pre>
+<pre><code>explicit directory_iterator(</code>const path& p, system::error_code& ec<code>);</code></pre>
 <blockquote>
 
 <p><i>Effects:</i> Constructs a iterator representing the first 
@@ -1712,11 +1750,13 @@
 path is resolved as if by the <i>POSIX</i>
 <a href="http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap04.html#tag_04_11">
 Pathname Resolution</a> mechanism.</p>
-<p>[<i>Note:</i> Because operational functions are subject to
-race conditions and I/O errors,
-error handling is of particular concern. <i>-- end 
-note</i>] </p>
-<pre>path <a name="complete">complete</a>(const path& p, const path& base, system::error_code& ec=throws());</pre>
+<p>[<i>Note: </i>Because hardware failures, network failures,
+race conditions, and many 
+other kinds of errors occur frequently in file system operations, users should be aware 
+that any filesystem operational function, no matter how apparently innocuous, may encounter 
+an error. See Error reporting. <i>-- end note</i>]</p>
+<h4><a name="Function-specifications">Function specifications</a></h4>
+<pre>path <a name="complete">complete</a>(const path& p, const path& base, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Effects:</i> Composes a complete path from <code>p</code> and <code>base</code>, 
   using the following rules:</p>
@@ -1755,27 +1795,31 @@
   is expected by program users. <i>-- 
   end note</i>]</p>
 </blockquote>
-<pre>path complete(const path& p, system::error_code& ec=throws());</pre>
+<pre>path complete(const path& p, system::error_code& ec);</pre>
 <blockquote>
 <p><i>Returns:</i> <code>path(p, initial_path(), ec)</code>.</p>
 </blockquote>
-<pre>void <a name="copy_file">copy_file</a>(const path& from, const path& to,
-               BOOST_SCOPED_ENUM(copy_option) option, system::error_code& ec=throws());</pre>
+<pre>void copy_file(const path& from, const path& to);</pre>
 <blockquote>
-  <p><i>Effects:</i> The contents and attributes of the file <code>from</code> 
-  resolves to are copied to the file <code>to</code> resolves to.</p>
-  <p><i>Throws:</i> <code>filesystem_error</code> if <code>
-  from.empty() || to.empty() ||!exists(from) || !is_regular_file(from) || 
-  (option==copy_option::fail_if_exists 
-  && exists(to))</code></p>
+  <p><i>Effects: </i><code>copy_file(from, to, 
+  copy_option::fail_if_exists)</code>.</p>
+  
 </blockquote>
-<pre>void copy_file(const path& from, const path& to, system::error_code& ec=throws());</pre>
+<pre>void copy_file(const path& from, const path& to, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Effects: </i><code>copy_file(from, to, 
   copy_option::fail_if_exists, ec)</code>.</p>
   
 </blockquote>
-<pre>bool <a name="create_directories">create_directories</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre>void <a name="copy_file">copy_file</a>(const path& from, const path& to, BOOST_SCOPED_ENUM(copy_option) option);
+void <a name="copy_file">copy_file</a>(const path& from, const path& to, BOOST_SCOPED_ENUM(copy_option) option, system::error_code& ec);</pre>
+<blockquote>
+  <p><i>Effects:</i> If <code>option == copy_option::</code><span style="background-color: #FFFFFF"><code>fail_if_exists 
+  && exists(to)</code>, an error is reported. Otherwise, t</span>he contents and attributes of the file <code>from</code> 
+  resolves to are copied to the file <code>to</code> resolves to.</p>
+</blockquote>
+<pre>bool <a name="create_directories">create_directories</a>(const path& p);
+bool <a name="create_directories">create_directories</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Requires:</i> <code>p.empty() || <br>
   forall px: px == p || is_parent(px, p): is_directory(px) || !exists( px )</code>
@@ -1786,7 +1830,8 @@
   <p><i>Throws:</i>  <code>filesystem_error</code> if<code> 
   exists(p) && !is_directory(p)</code></p>
 </blockquote>
-<pre>bool <a name="create_directory">create_directory</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre>bool <a name="create_directory">create_directory</a>(const path& p);
+bool <a name="create_directory">create_directory</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Effects:</i> Attempts to create the directory <code>p</code> resolves to, 
   as if by<i> POSIX </i><code>
@@ -1796,7 +1841,8 @@
   <p><i>Returns:</i> True if a new directory was created, otherwise false.</p>
   <p><i>Postcondition:</i> <code>is_directory(dp)</code></p>
 </blockquote>
-<pre><span style="background-color: #FFFFFF">void <a name="create_hard_link">create_hard_link</a>(const path& p, const path& new_link, system::error_code& ec=throws());</span></pre>
+<pre><span style="background-color: #FFFFFF">void <a name="create_hard_link">create_hard_link</a>(const path& p, const path& new_link);
+void <a name="create_hard_link">create_hard_link</a>(const path& p, const path& new_link, system::error_code& ec);</span></pre>
 <blockquote>
   <p><i><span style="background-color: #FFFFFF">Effects:</span></i><span style="background-color: #FFFFFF"> Establishes the postcondition, as if by
   </span> <i><span style="background-color: #FFFFFF">POSIX</span></i><span style="background-color: #FFFFFF">
@@ -1813,16 +1859,14 @@
   </ul>
   <p><span style="background-color: #FFFFFF">[</span><i><span style="background-color: #FFFFFF">Note:</span></i><span style="background-color: #FFFFFF"> 
   Some <b>operating systems</b> do not support hard links at all or support 
-  them only for regular files. Some file systems limit the number of links per 
-  file. 
-  Some <b>file systems</b> do not 
-  support 
-  hard links regardless of the operating system - the FAT system used on floppy discs, memory cards and flash 
-  drives, 
-  for example. Thus hard links should only be used if these situations are not 
-  concerns, or if workarounds are provided. </span> <i><span style="background-color: #FFFFFF">-- end note</span></i><span style="background-color: #FFFFFF">]</span></p>
+  them only for regular files. Some <b>file systems</b> do not support hard 
+  links regardless of the operating system - the FAT system used on floppy 
+  discs, memory cards and flash drives, for example. Some file systems limit the 
+  number of links per file. Thus hard links should only be used if these 
+  situations are not concerns, or if workarounds are provided. </span> <i><span style="background-color: #FFFFFF">-- end note</span></i><span style="background-color: #FFFFFF">]</span></p>
   </blockquote>
-<pre><span style="background-color: #FFFFFF">void <a name="create_symlink">create_symlink</a>(const path& p, const path& new_link, system::error_code& ec=throws());</span></pre>
+<pre><span style="background-color: #FFFFFF">void <a name="create_symlink">create_symlink</a>(const path& p, const path& new_link);
+void <a name="create_symlink">create_symlink</a>(const path& p, const path& new_link, system::error_code& ec);</span></pre>
 <blockquote style="font-size: 10pt">
   <p style="font-size: 10pt"><i><span style="background-color: #FFFFFF">Effects:</span></i><span style="background-color: #FFFFFF"> 
   Establishes the postcondition, as if by </span><i>
@@ -1843,12 +1887,13 @@
   for example. Thus symbolic links should only be used if these situations are 
   not concerns, or if workarounds are provided. </span> <i><span style="background-color: #FFFFFF">-- end note</span></i><span style="background-color: #FFFFFF">]</span></p>
   </blockquote>
-<pre>path <a name="current_path">current_path</a>(system::error_code& ec=throws());</pre>
+<pre>path <a name="current_path">current_path</a>();
+path <a name="current_path">current_path</a>(system::error_code& ec);</pre>
 <blockquote>
   <p><i>Returns:</i> The current working directory path, as if by <i>POSIX</i>
+  <code>
   <a href="http://www.opengroup.org/onlinepubs/000095399/functions/getcwd.html">
-  <code>getcwd()</code></a>.</p>
-  <p><i>Postcondition:</i> <code>current_path().is_complete()</code></p>
+  getcwd()</a></code>. <code>is_complete()</code> is true for the returned path.</p>
   <p>[<i>Note:</i> The current path as returned by many operating systems is a 
   dangerous global variable. It may be changed unexpectedly by a third-party or 
   system library functions, or by another thread. For a safer alternative, 
@@ -1856,7 +1901,8 @@
   current_path()</code> name was chosen to emphasize that the return is a 
   complete path, not just a single directory name. <i>-- end note</i>]</p>
 </blockquote>
-<pre>void current_path(const path& p, system::error_code& ec=throws());</pre>
+<pre>void current_path(const path& p);
+void current_path(const path& p, system::error_code& ec);</pre>
 <blockquote>
 <p><i>Postcondition:</i> <code>equivalent(p, current_path())</code>.</p>
 </blockquote>
@@ -1865,11 +1911,13 @@
   <p><i><span style="background-color: #FFFFFF">Returns:</span></i><span style="background-color: #FFFFFF">
   <code>status_known(s) && s.type() != file_not_found</code></span></p>
 </blockquote>
-<pre>bool <a name="exists2">exists</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre>bool <a name="exists2">exists</a>(const path& p);
+bool <a name="exists2">exists</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Returns:</i> <code>exists( status(p, ec) )</code></p>
 </blockquote>
-<pre><code>bool <a name="equivalent">equivalent</a>(const path& p1, const path& p2, system::error_code& ec=throws());</code></pre>
+<pre><code>bool <a name="equivalent">equivalent</a>(const path& p1, const path& p2);
+bool <a name="equivalent">equivalent</a>(const path& p1, const path& p2, system::error_code& ec);</code></pre>
 <blockquote style="font-size: 10pt">
   <p style="font-size: 10pt"><i>Effects:</i> Determines <code>file_status s1</code> 
   and <code>s2</code>, as if by <code>status(p1)</code> and  <code>status(p2)</code>, 
@@ -1898,7 +1946,8 @@
   <code>nFileSizeLow</code>, <code>ftLastWriteTime.dwLowDateTime</code>, and
   <code>ftLastWriteTime.dwHighDateTime</code>. <i>-- end note</i>]</p>
 </blockquote>
-<pre><span style="background-color: #FFFFFF; ">uintmax_t</span> <a name="file_size">file_size</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre><span style="background-color: #FFFFFF; ">uintmax_t</span> <a name="file_size">file_size</a>(const path& p);<span style="background-color: #FFFFFF; ">
+uintmax_t</span> <a name="file_size">file_size</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Returns:</i> The size 
   <span style="background-color: #FFFFFF; ">in bytes</span> 
@@ -1910,7 +1959,8 @@
   <p style="font-size: 10pt"><i>Throws:</i> <code>filesystem_error</code><span style="background-color: #FFFFFF">
   </span>if <code>!exists(p) || !is_regular_file(p)</code>.</p>
 </blockquote>
-<pre>const path& <a name="initial_path">initial_path</a>(system::error_code& ec=throws());</pre>
+<pre>const path& <a name="initial_path">initial_path</a>();
+const path& <a name="initial_path">initial_path</a>(system::error_code& ec);</pre>
 <blockquote>
   <p><i>Returns:</i> <code>current_path()</code> at the time of entry to <code>
   main()</code>.</p>
@@ -1930,11 +1980,13 @@
   <p><i><span style="background-color: #FFFFFF">Returns:</span></i><span style="background-color: #FFFFFF"> </span>
   <code><span style="background-color: #FFFFFF">s.type() == directory_file</span></code></p>
 </blockquote>
-<pre><code>bool <a name="is_directory2">is_directory</a>(const path& p, system::error_code& ec=throws());</code></pre>
+<pre><code>bool <a name="is_directory2">is_directory</a>(const path& p);
+bool <a name="is_directory2">is_directory</a>(const path& p, system::error_code& ec);</code></pre>
 <blockquote>
   <p><i>Returns:</i> <code>is_directory( status(p, ec) )</code></p>
 </blockquote>
-<pre><code>bool <span style="background-color: #FFFFFF; text-decoration:underline"><a name="is_empty">is_</a></span><a name="is_empty">empty</a>(const path& p, system::error_code& ec=throws());</code></pre>
+<pre><code>bool <span style="background-color: #FFFFFF; text-decoration:underline"><a name="is_empty">is_</a></span><a name="is_empty">empty</a>(const path& p);
+bool <span style="background-color: #FFFFFF; text-decoration:underline"><a name="is_empty">is_</a></span><a name="is_empty">empty</a>(const path& p, system::error_code& ec);</code></pre>
 <blockquote>
   <p><i>Effects:</i> Determines <code>file_status s</code>, as if by <code>
   status(p, ec)</code>.</p>
@@ -1942,8 +1994,6 @@
          ? 
   directory_iterator(p) == directory_iterator()<br>
          : file_size(p) == 0;</code></p>
-  <p><i>Throws:</i> <code>filesystem_error</code> if <code>!exist(s) || 
-  is_other(s)</code>.</p>
 </blockquote>
 <pre><span style="background-color: #FFFFFF">bool <a name="is_other">is_other</a>(file_status s);</span></pre>
 <blockquote>
@@ -1953,29 +2003,41 @@
   <code>is_other()</code> will remain unchanged even if additional <code>is_xxx()</code> 
   functions are added in the future. <i>-- end note</i>]</span></p>
 </blockquote>
-<pre><code>bool <a name="is_other2">is_other</a>(const path& p, system::error_code& ec=throws());</code></pre>
+<pre><code>bool <a name="is_other2">is_other</a>(const path& p);
+bool <a name="is_other2">is_other</a>(const path& p, system::error_code& ec);</code></pre>
 <blockquote>
   <p><i>Returns:</i> <code>is_other( status(p, ec) )</code></p>
 </blockquote>
-<pre><span style="background-color: #FFFFFF">bool </span><code><span style="background-color: #FFFFFF"><a name="is_regular_file">is_regular_file</a></span></code><span style="background-color: #FFFFFF">(file_status s);</span></pre>
+<pre><span style="background-color: #D7EEFF">bool </span><code><span style="background-color: #D7EEFF"><a name="is_regular_file">is_regular_file</a></span></code><span style="background-color: #D7EEFF">(file_status</span><span style="background-color: #D7EEFF"> s);</span></pre>
 <blockquote>
-  <p><i><span style="background-color: #FFFFFF">Returns:</span></i><span style="background-color: #FFFFFF">
+  <p><i><span style="background-color: #D7EEFF">Returns:</span></i><span style="background-color: #D7EEFF">
   <code>s.type() == regular_file</code></span></p>
+  <p><span style="background-color: #D7EEFF"><i>Throws:</i> Nothing.</span></p>
 </blockquote>
-<pre><code>bool <a name="is_regular_file2">is_regular_file</a>(const path& p, system::error_code& ec=throws());</code></pre>
+<pre><code><span style="background-color: #D7EEFF">bool <a name="is_regular_file2">is_regular_file</a>(const path& p);</span></code></pre>
 <blockquote>
-  <p><i>Returns:</i> <code>is_regular_file( status(p, ec) )</code></p>
+  <p><i><span style="background-color: #D7EEFF">Returns:</span></i><span style="background-color: #D7EEFF">
+  </span> <code><span style="background-color: #D7EEFF">is_regular_file( status(p) )</span></code></p>
+  <p><span style="background-color: #D7EEFF"><i>Throws:</i> Nothing.</span></p>
+</blockquote>
+<pre><code><span style="background-color: #D7EEFF">bool <a name="is_regular_file2">is_regular_file</a>(const path& p, system::error_code& ec);</span></code></pre>
+<blockquote>
+  <p><i><span style="background-color: #D7EEFF">Returns:</span></i><span style="background-color: #D7EEFF">
+  </span> <code><span style="background-color: #D7EEFF">is_regular_file( status(p, ec) )</span></code></p>
+  <p><span style="background-color: #D7EEFF"><i>Throws:</i> Nothing.</span></p>
 </blockquote>
 <pre><span style="background-color: #FFFFFF">bool <a name="is_symlink">is_symlink</a>(file_status s);</span></pre>
 <blockquote>
   <p><i><span style="background-color: #FFFFFF">Returns:</span></i><span style="background-color: #FFFFFF"> </span>
   <code><span style="background-color: #FFFFFF">s.type() == symlink_file</span></code></p>
 </blockquote>
-<pre><code>bool <a name="is_symlink2">is_symlink</a>(const path& p, system::error_code& ec=throws());</code></pre>
+<pre><code>bool <a name="is_symlink2">is_symlink</a>(const path& p);
+bool <a name="is_symlink2">is_symlink</a>(const path& p, system::error_code& ec);</code></pre>
 <blockquote>
   <p><i>Returns:</i> <code>is_symlink( symlink_status(p, ec) )</code></p>
 </blockquote>
-<pre>std::time_t <a name="last_write_time">last_write_time</a>(const path& p<code>, system::error_code& ec=throws()</code>);</pre>
+<pre>std::time_t <a name="last_write_time">last_write_time</a>(const path& p);
+std::time_t <a name="last_write_time">last_write_time</a>(const path& p<code>, system::error_code& ec</code>);</pre>
 <blockquote>
   <p><i>Returns:</i> The time of last data modification of <code>p</code>, determined as if by the 
   value of the <i>POSIX</i> <code>
@@ -1983,7 +2045,8 @@
   as if by <i>POSIX</i> <code>
   <a href="http://www.opengroup.org/onlinepubs/000095399/functions/stat.html">stat()</a></code>.</p>
 </blockquote>
-<pre>void <a name="last_write_time2">last_write_time</a>(const path& p, const std::time_t new_time<code>, system::error_code& ec=throws()</code>);</pre>
+<pre>void <a name="last_write_time2">last_write_time</a>(const path& p, const std::time_t new_time);
+void <a name="last_write_time2">last_write_time</a>(const path& p, const std::time_t new_time<code>, system::error_code& ec</code>);</pre>
 <blockquote>
   <p><i>Effects:</i> Sets the time of last data modification of the file 
   resolved to by <code>p</code> 
@@ -1996,7 +2059,8 @@
   new_time</code> is not specified since it would not hold for file systems 
   with coarse time mechanism granularity. <i>-- end note</i>]</p>
 </blockquote>
-<pre>bool <a name="remove">remove</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre>bool <a name="remove">remove</a>(const path& p);
+bool <a name="remove">remove</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Remarks:</i>  If <code>exists(symlink_status(p,ec))</code>, it is 
   removed 
@@ -2008,7 +2072,8 @@
   <p>[<i>Note:</i> A symbolic link is itself removed, rather than the file it 
   resolves to being removed. <i>-- end note</i>]</p>
 </blockquote>
-<pre>uintmax_t <a name="remove_all">remove_all</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre>uintmax_t <a name="remove_all">remove_all</a>(const path& p);
+uintmax_t <a name="remove_all">remove_all</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Effects:</i>  Recursively deletes the contents of p if it exists, 
   then deletes file <code>p</code> itself, 
@@ -2019,31 +2084,32 @@
   <p>[<i>Note:</i> A symbolic link is itself removed, rather than the file it 
   resolves to being removed. <i>-- end note</i>]</p>
 </blockquote>
-<pre>void <a name="rename">rename</a>(const path& from, const path& to, system::error_code& ec=throws());</pre>
+<pre>void <a name="rename">rename</a>(const path& from, const path& to);
+void <a name="rename">rename</a>(const path& from, const path& to, system::error_code& ec);</pre>
 <blockquote>
-  <p><i>Effects:</i> Renames <code>from_p</code> to <code>to_p</code>, as if by
+  <p><i>Effects:</i> Renames <code>from</code> to <code>to</code>, as if by
   <i>POSIX</i> <code>
   <a href="http://www.opengroup.org/onlinepubs/000095399/functions/rename.html">
   rename()</a></code>.</p>
-  <p><i>Postconditions:</i> <code>!exists(from_p) && exists(to_p)</code>, and 
-  the contents and attributes of the file originally named <code>from_p</code> 
+  <p><i>Postconditions:</i> <code>!exists(from) && exists(to)</code>, and 
+  the contents and attributes of the file originally named <code>from</code> 
   are otherwise unchanged.</p>
-  <p>[<i>Note:</i> If <code>from_p</code> and <code>to_p</code> resolve to the 
-  same file, no action is taken. Otherwise, if <code>to_p</code> resolves to an 
+  <p>[<i>Note:</i> If <code>from</code> and <code>to</code> resolve to the 
+  same file, no action is taken. Otherwise, if <code>to</code> resolves to an 
   existing file, it is removed. A symbolic link is itself renamed, rather than 
   the file it resolves to being renamed. <i>-- end note</i>]</p>
 </blockquote>
-<pre>void <a name="resize_file">resize_file</a>(const path& p, <span style="background-color: #FFFFFF; ">uintmax_t new_size, </span>system::error_code& ec=throws());</pre>
+<pre>void <a name="resize_file">resize_file</a>(const path& p, <span style="background-color: #FFFFFF; ">uintmax_t new_size</span>);
+void <a name="resize_file">resize_file</a>(const path& p, <span style="background-color: #FFFFFF; ">uintmax_t new_size, </span>system::error_code& ec);</pre>
 <blockquote>
 <p><i>Postcondition:</i> <code>file_size() == new_size</code>.</p>
-  <p style="font-size: 10pt"><i>Throws:</i> <code>filesystem_error</code><span style="background-color: #FFFFFF">
-  </span>if <code>!exists(p) || !is_regular_file(p)</code>.</p>
   <p style="font-size: 10pt"><i>Remarks:</i> Achieves its postcondition as if by 
   POSIX <code>
   <a href="http://www.opengroup.org/onlinepubs/000095399/functions/truncate.html">
   truncate()</a></code>.</p>
 </blockquote>
-<pre><span style="background-color: #FFFFFF">space_info <a name="space">space</a>(const path& p</span>, system::error_code& ec=throws()<span style="background-color: #FFFFFF">);</span></pre>
+<pre><span style="background-color: #FFFFFF">space_info <a name="space">space</a>(const path& p);
+space_info <a name="space">space</a>(const path& p</span>, system::error_code& ec<span style="background-color: #FFFFFF">);</span></pre>
 <blockquote>
   <p><span style="background-color: #FFFFFF"><i>Returns:</i> An object of type <code>
   <a href="#space_info">space_info</a></code>. The value of the <code>space_info</code> object is determined as if by 
@@ -2057,46 +2123,42 @@
   and <code>available</code> members respectively. Any members for which the 
   value cannot be determined shall be set to -1.</span></p>
 </blockquote>
-<pre>file_status <a name="status">status</a>(const path& p, system::error_code& ec=throws());
-file_status symlink_status(const path& p, system::error_code& ec=throws());</pre>
+<pre>file_status <a name="status">status</a>(const path& p);
+file_status <a name="status">status</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
-  <p><i>Returns:</i></p>
+  <p><i>Effects: </i></p>
   <blockquote>
-    <p>For <code>status</code>, determine the attributes 
+    <p>Determines the attributes 
     of
     <code>p</code> as if by<i> POSIX </i> <code>
-  stat()</code>; 
-    for <code>symlink_status</code>, determine the attributes as if by <i>POSIX </i> <code>
-    <a href="http://www.opengroup.org/onlinepubs/000095399/functions/lstat.html">
-    lstat()</a></code>.</p>
-    <blockquote>
+  stat()</code>.</p>
       <p>[<i>Note:</i> For symbolic links, <code>stat()</code> continues 
-      pathname resolution using the contents of the symbolic link, <code>lstat()</code> 
-      does not. <i>-- 
+      pathname resolution using the contents of the symbolic link. <i>-- 
     end note</i>]</p>
     </blockquote>
-    <p>If the underlying file system reports an error during attribute determination:</p>
+  <p><i>Returns:</i></p>
+  <blockquote>
+    <p>If the underlying file system API reports an error during attribute determination:</p>
     <ul>
       <li>If the error indicates that <code>p</code> could not be resolved, as 
-      if by POSIX errors ENOENT or ENOTDIR, call <code>ec.clear()</code> and return <code>
+      if by POSIX errors ENOENT or ENOTDIR, call <code>ec.clear()</code>if ec is 
+      present and return <code>
       file_status(not_found_flag)</code>.</li>
     </ul>
     <blockquote>
       <blockquote>
         <p>[<i>Note:</i> The effect of this behavior is to distinguish between 
-        knowing that p 
-        does not exist, and not being able to determine the status of p. This 
+        knowing that <code>p</code> 
+        does not exist, and not being able to determine the status of <code>p</code>. This 
         distinction is important to users.  <i>--end note</i>]</p>
       </blockquote>
     </blockquote>
     <ul>
-      <li>Otherwise, set ec to the error number reported by the underlying 
-      implementation API 
+      <li>Otherwise, set <code>ec</code> if present to represent the error 
+      reported by the underlying file system API, 
       and return <code>
       file_status(status_unknown)</code>.</li>
     </ul>
-    <p><b><i><span style="background-color: #FFFF00">Under what conditions do 
-    these functions throw? It isn't at all clear.</span></i></b></p>
     <p>Otherwise:</p>
     <ul>
       <li>If the attributes indicate a regular file, as if by <i>POSIX</i> S_ISREG(), 
@@ -2126,24 +2188,39 @@
     </ul>
     </blockquote>
 <p>[<i>Note:</i> <code>directory_file</code> implies <code>
-directory_iterator</code> on the file would succeed, and <code>
+directory_iterator(p)</code>would succeed, and <code>
 regular_file</code> implies appropriate <code><fstream></code> operations would succeed, 
 assuming no hardware, permission, access, or race 
 condition errors. For <code>regular_file,</code> the converse is not true; lack of
 <code>regular_file</code> does not necessarily imply <code><fstream></code> operations would 
 fail on a directory.
 <i>-- end note</i>]</p>
+<p><i>Throws:</i> Nothing.</p>
 </blockquote>
 <pre><span style="background-color: #FFFFFF">bool <a name="status_known">status_known</a>(file_status s);</span></pre>
 <blockquote>
   <p><i><span style="background-color: #FFFFFF">Returns:</span></i><span style="background-color: #FFFFFF">
   <code>s.type() != status_unknown</code></span></p>
 </blockquote>
-<pre>file_status <a name="symlink_status">symlink_status</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre>file_status <a name="symlink_status">symlink_status</a>(const path& p);
+file_status <a name="symlink_status">symlink_status</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
-<pre><i>See status() above.</i></pre>
+  <p><i>Effects: </i></p>
+  <blockquote>
+    <p>Determines the attributes 
+    of
+    <code>p</code> as if by<i> POSIX </i> <code>
+    <a href="http://www.opengroup.org/onlinepubs/000095399/functions/lstat.html">
+    lstat()</a></code>..</p>
+      <p>[<i>Note:</i> For symbolic links, <code>lstat()</code> does not 
+      continue pathname resolution when a symbolic link is encountered. <i>-- 
+    end note</i>]</p>
+    </blockquote>
+<p><i>Returns:</i> As specified for <i> status()</i>, 
+above.</p>
+<p><i>Throws:</i> Nothing.</p>
 </blockquote>
-<pre>path <a name="system_complete">system_complete</a>(const path& p, system::error_code& ec=throws());</pre>
+<pre>path <a name="system_complete">system_complete</a>(const path& p, system::error_code& ec);</pre>
 <blockquote>
   <p><i>Effects:</i> Composes a complete path from <code>p</code>, using the 
   same rules used by the operating system to resolve a path passed as the 
@@ -2929,7 +3006,7 @@
 <p>Distributed under the Boost Software License, Version 1.0. See
 <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
 <p>Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->18 October 2009<!--webbot bot="Timestamp" endspan i-checksum="32674" --></p>
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->28 October 2009<!--webbot bot="Timestamp" endspan i-checksum="32675" --></p>
 
 </body>