Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67130 - in website/public_html/beta/doc/libs/1_45_0: . libs libs/filesystem libs/filesystem/v2 libs/filesystem/v2/doc libs/filesystem/v3 libs/filesystem/v3/doc
From: dnljms_at_[hidden]
Date: 2010-12-09 10:22:26


Author: danieljames
Date: 2010-12-09 10:22:24 EST (Thu, 09 Dec 2010)
New Revision: 67130
URL: http://svn.boost.org/trac/boost/changeset/67130

Log:
Add the altered filesystem pages.

Just in case we accidentally revert the changes made directly to the archives.
Note that this is the post-processed version, downloaded directly from the
site.

Added:
   website/public_html/beta/doc/libs/1_45_0/
   website/public_html/beta/doc/libs/1_45_0/libs/
   website/public_html/beta/doc/libs/1_45_0/libs/filesystem/
   website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v2/
   website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v2/doc/
   website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v2/doc/index.htm (contents, props changed)
   website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v3/
   website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v3/doc/
   website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v3/doc/index.htm (contents, props changed)

Added: website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v2/doc/index.htm
==============================================================================
--- (empty file)
+++ website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v2/doc/index.htm 2010-12-09 10:22:24 EST (Thu, 09 Dec 2010)
@@ -0,0 +1,818 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Filesystem Home</title>
+<link rel="stylesheet" type="text/css" href="../../../../doc/src/minimal.css">
+</head>
+
+<body>
+
+<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="710">
+ <tr>
+ <td width="277">
+<a href="../../../../index.htm">
+<img src="../../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="277" height="86" border="0"></a></td>
+ <td width="410" align="middle">
+ <font size="7">Filesystem Library<br>
+ Version 2</font>
+ </td>
+ </tr>
+</table>
+
+<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" bgcolor="#D7EEFF" width="100%">
+ <tr>
+ <td>Boost Home&nbsp;&nbsp;&nbsp;
+ Library Home&nbsp; &nbsp; Tutorial&nbsp; &nbsp; <a href="reference.html">
+ Reference</a>&nbsp;&nbsp; FAQ</td>
+ </tr>
+</table>
+
+<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" align="right">
+ <tr>
+ <td width="100%" bgcolor="#D7EEFF" align="center">
+ <i><b>Contents</b></i></td>
+ </tr>
+ <tr>
+ <td width="100%" bgcolor="#E8F5FF">
+ Introduction<br>
+ Using the library<br>
+ Two-minute tutorial<br>
+ Cautions<br>
+ Example programs<br>
+ Implementation<br>
+ Macros<br>
+ Deprecated names and features<br>
+ Using only narrow character paths<br>
+ Building the object-library<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;Notes for Cygwin users<br>
+ Acknowledgements<br>
+ Change history</td>
+ </tr>
+ <tr>
+ <td width="100%" bgcolor="#D7EEFF" align="center">
+ <i><b>Other Documents</b></i></td>
+ </tr>
+ <tr>
+ <td width="100%" bgcolor="#E8F5FF">
+ Reference<br>
+ Library Design<br>
+ FAQ<br>
+ Portability Guide<br>
+ Do-list
+ </td>
+ </tr>
+</table>
+
+<div align="center">
+ <center>
+ <table border="1" cellpadding="10" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td>
+ <p align="center"><b>This is Version 2 of the Filesystem library.</b></p>
+ <p align="center">Version 3, a major revision with many new and improved
+ features, is also available. Version 3 may break some user code written
+ for Version 2.</p>
+ <p align="center">To ease the transition, Boost releases 1.44 through 1.47
+ will supply both V2 and V3. Version 2 is the default version for Boost release 1.44
+ and 1.45. Version 3 will be the default starting with release 1.46.</p>
+ <p align="center"><b>Define macro BOOST_FILESYSTEM_VERSION as 3 to use Version 3. You may do this via a
+ compiler argument or via <code>#define BOOST_FILESYSTEM_VERSION 3</code>.
+ This will be the default for release 1.46 and later.</b></p>
+ <p align="center"><b>Define macro BOOST_FILESYSTEM_VERSION as 2 to use Version
+ 2. You may do this via a
+ compiler argument or via <code>#define BOOST_FILESYSTEM_VERSION 2</code>.
+ This is the default for release 1.44 and 1.45.</b></p>
+ <p align="center">Existing code should be moved to version 3 as soon as
+ convenient. New code should be written for version 3.</p>
+ <p align="center">Version 2 is deprecated, and will not be included in Boost
+ releases 1.48 and later.</p>
+ </td>
+ </tr>
+ </table>
+ </center>
+</div>
+
+<h2><a name="Introduction">Introduction</a></h2>
+<p>The Boost.Filesystem library provides portable facilities to query and
+manipulate paths, files, and directories.</p>
+
+<p>The motivation for the library is the need to perform portable script-like operations from within C++ programs. The intent is not to
+compete with Python, Perl, or shell languages, but rather to provide portable filesystem
+operations when C++ is already the language of choice. The <a href="design.htm">
+design</a> encourages, but does not require, safe and portable usage.</p>
+
+<p>Programs using the library are <b><i>portable</i></b>, both in the sense that
+the syntax of program code is portable, and the sense that the semantics or
+behavior of code is portable. The <a href="reference.html">generic path
+grammar</a> is another important aid to portability.</p>
+
+<p>Usage is <i><b>safe</b></i> in the sense that errors cannot be ignored since most functions throw C++
+exceptions when errors are detected. This is also convenient for users because
+it alleviates the&nbsp;need to explicitly check error
+return codes.</p>
+
+<p>A proposal,
+<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1975.html">
+N1975</a>, to include Boost.Filesystem in Technical Report 2 has been accepted
+by the C++ Standards Committee. The Boost.Filesystem library will stay in
+alignment with the TR2 Filesystem proposal as it works its way through the TR2
+process. Note, however, that namespaces and header granularity differs between
+Boost.Filesystem and the TR2 proposal.</p>
+
+<p>The Boost.Filesystem library provides several&nbsp; headers:</p>
+
+<ul>
+ <li>Header &lt;boost/filesystem.hpp&gt; provides class <i>
+ basic_path, </i>a portable mechanism for representing
+ paths in C++ programs. Typedefs <i>path</i> and <i>
+ wpath</i> ease the most common usages of <i>basic_path</i>. Operational
+ functions provide useful query and maintenance operations on files and directories.
+ Class <i>basic_directory_iterator</i> with typdefs <i>
+ directory_iterator</i> and <i>wdirectory_iterator</i> provide iteration over
+ the contents of directories. Convenience functions and classes combine lower-level functionality
+ in useful ways.<br>
+&nbsp;</li>
+ <li>Header &lt;boost/filesystem/fstream.hpp&gt; provides the same components as the C++ Standard
+ Library's <i>fstream</i> header, except
+ that files are identified by <i>basic_path</i> objects rather that <i>char *</i>'s.</li>
+</ul>
+<h2><a name="Using">Using</a> the library</h2>
+<p>Boost.Filesystem is implemented as a separately compiled library, so before
+using it you must install it in a location that can be found by your linker. See
+Building the object-library. </p>
+<p>The library's example directory contains very simple
+scripts for building the example programs on various
+platforms. You can use these scripts to see what's needed to compile and link
+your own programs.</p>
+<h2>Two-minute <a name="tutorial">tutorial</a></h2>
+<p>(A
+<a href="http://beans.seartipy.com/2006/05/10/boost-filesystem-library-writing-portable-c-programs-to-acess-the-filesystem/">
+more elaborate tutorial</a> is also available from Tabrez Iqbal.)</p>
+<p>First some preliminaries:</p>
+<blockquote>
+ <pre>#include &quot;boost/filesystem.hpp&quot; // includes all needed Boost.Filesystem declarations
+#include &lt;iostream&gt; // for std::cout
+using boost::filesystem; // for ease of tutorial presentation;
+ // a namespace alias is preferred practice in real code</pre>
+</blockquote>
+<p>A class path object can be created:</p>
+<blockquote>
+ <pre>path my_path( &quot;some_dir/file.txt&quot; );</pre>
+</blockquote>
+<p>The string passed to the <i>path</i> constructor may be in a
+portable generic path format or an
+implementation-defined native operating system format. Access functions
+make <i>my_path</i> contents available to the underlying operating system API in an operating system dependent format,
+such as <code>&quot;some_dir:file.txt&quot;</code>, <code>&quot;[some_dir]file.txt&quot;</code>,
+<code>&quot;some_dir/file.txt&quot;</code>, or whatever is appropriate for the
+operating system. If class <i>wpath</i> is used instead of class <i>path</i>,
+translation between wide and narrow character paths is performed automatically
+if necessary for the operating system.</p>
+<p>Class <i>path</i> has conversion constructors from <i>const char*</i> and <i>
+const std:: string&amp;</i>, so that even though the Filesystem Library
+functions used in the following code snippet have <i>const path&amp;</i> formal
+parameters, the user can just
+code C-style strings as actual arguments:</p>
+<blockquote>
+ <pre>remove_all( &quot;foobar&quot; );
+create_directory( &quot;foobar&quot; );
+ofstream file( &quot;foobar/cheeze&quot; );
+file &lt;&lt; &quot;tastes good!\n&quot;;
+file.close();
+if ( !exists( &quot;foobar/cheeze&quot; ) )
+ std::cout &lt;&lt; &quot;Something is rotten in foobar\n&quot;;</pre>
+</blockquote>
+<p>To make class <i>path</i> objects easy to use in expressions, <i>operator/</i>
+appends paths:</p>
+<blockquote>
+ <pre>ifstream file1( arg_path / &quot;foo/bar&quot; );
+ifstream file2( arg_path / &quot;foo&quot; / &quot;bar&quot; );</pre>
+</blockquote>
+<p>The expressions <i>arg_path / &quot;foo/bar&quot;</i> and <i>arg_path / &quot;foo&quot;
+/ &quot;bar&quot;</i> yield identical results.</p>
+<p>Paths can include references to the current directory, using &quot;<code>.</code>&quot;
+notation, and the parent directory, using &quot;<code>..</code>&quot;
+notation.</p>
+<p>Class basic_directory_iterator
+is an important component of the library. It provides an input iterator over the
+contents of a directory, with the value type being class <i>basic_path</i>.
+Typedefs <i>directory_iterator</i> and <i>wdirectory_iterator</i> are provided
+to cover the most common use cases.</p>
+<p>The following function, given a directory path and a file name, recursively
+searches the directory and its sub-directories for the file name, returning a
+bool, and if successful, the path to the file that was found.&nbsp; The code
+below is extracted from a real program, slightly modified for clarity:</p>
+<blockquote>
+ <pre>bool find_file( const path &amp; dir_path, // in this directory,
+ const std::string &amp; file_name, // search for this name,
+ path &amp; path_found ) // placing path here if found
+{
+ if ( !exists( dir_path ) ) return false;
+ directory_iterator end_itr; // default construction yields past-the-end
+ for ( directory_iterator itr( dir_path );
+ itr != end_itr;
+ ++itr )
+ {
+ if ( is_directory(itr-&gt;status()) )
+ {
+ if ( find_file( itr-&gt;path(), file_name, path_found ) ) return true;
+ }
+ else if ( itr-&gt;path().filename() == file_name ) // see below
+ {
+ path_found = itr-&gt;path();
+ return true;
+ }
+ }
+ return false;
+}</pre>
+</blockquote>
+<p>The expression <i>itr-&gt;path().filename() == file_name</i>, in the line commented <i>//
+see below</i>, calls the <i>filename()</i> function on the <i>path</i> returned by
+calling the <i>path()</i> function of the <i>directory_entry </i>object pointed
+to by the iterator. <i>filename()</i> returns a string which is a copy of the
+last (closest to the leaf, farthest from the root) file or directory name in the
+<i>path</i> object.</p>
+<p>Notice that <i>find_file()</i> does not do explicit error checking, such as
+verifying that the <i>dir_path</i> argument really represents a directory.
+Boost.Filesystem functions throw
+exceptions if they do not complete successfully, so there is enough implicit
+error checking that this application doesn't need to supply additional error
+checking code unless desired. Several Boost.Filesystem functions have non-throwing
+versions, to ease use cases where exceptions would not be appropriate.</p>
+<blockquote>
+<p><i>Note: </i>Recursive
+directory iteration was added as a convenience function after the above tutorial code
+was written, so nowadays you
+don't have to actually code the recursion yourself.</p>
+</blockquote>
+<h2><a name="Cautions">Cautions</a></h2>
+<p>After reading the tutorial you can dive right into simple,
+script-like programs using the Filesystem Library! Before doing any serious
+work, however, there a few cautions to be aware of:</p>
+<h4><b>Effects and Postconditions not guaranteed in the presence of race-conditions</b></h4>
+<p>Filesystem function specifications follow the C++ Standard Library form, specifying behavior in terms of
+effects and postconditions. If
+a race-condition exists, a function's
+postconditions may no longer be true by the time the function returns to the
+caller.</p>
+<blockquote>
+<p><b><i>Explanation: </i></b>The state of files and directories is often
+globally shared, and thus may be changed unexpectedly by other threads,
+processes, or even other computers having network access to the filesystem. As an
+example of the difficulties this can cause, note that the following asserts
+may fail:</p>
+<blockquote>
+<p><code>assert( exists( &quot;foo&quot; ) == exists( &quot;foo&quot; ) );&nbsp; //
+(1)<br>
+<br>
+remove_all( &quot;foo&quot; );<br>
+assert( !exists( &quot;foo&quot; ) );&nbsp; // (2)<br>
+<br>
+assert( is_directory( &quot;foo&quot; ) == is_directory( &quot;foo&quot; ) ); //
+(3)</code></p>
+</blockquote>
+<p>(1) will fail if a non-existent &quot;foo&quot; comes into existence, or an
+existent &quot;foo&quot; is removed, between the first and second call to <i>exists()</i>.
+This could happen if, during the execution of the example code, another thread,
+process, or computer is also performing operations in the same directory.</p>
+<p>(2) will fail if between the call to <i>remove_all()</i> and the call to
+<i>exists()</i> a new file or directory named &quot;foo&quot; is created by another
+thread, process, or computer.</p>
+<p>(3) will fail if another thread, process, or computer removes an
+existing file &quot;foo&quot; and then creates a directory named &quot;foo&quot;, between the
+example code's two calls to <i>is_directory()</i>.</p>
+</blockquote>
+<h4><b>May throw exceptions</b></h4>
+<p>Unless otherwise specified, Boost.Filesystem functions throw <i>
+basic_filesystem_error</i>
+exceptions if they cannot successfully complete their operational
+specifications. Also, implementations may use C++ Standard Library functions,
+which may throw <i>std::bad_alloc</i>. These exceptions may be thrown even
+though the error condition leading to the exception is not explicitly specified
+in the function's &quot;Throws&quot; paragraph.</p>
+<p>All exceptions thrown by the Filesystem
+Library are implemented by calling <a href="../../../utility/throw_exception.html">
+boost::throw_exception()</a>. Thus exact behavior may differ depending on
+BOOST_NO_EXCEPTIONS at the time the filesystem source files are compiled.</p>
+<p>Non-throwing versions are provided of several functions that are often used
+in contexts where error codes may be the preferred way to report an error.</p>
+<h2><a name="Examples">Example programs</a></h2>
+<h3>simple_ls.cpp</h3>
+<p>The example program simple_ls.cpp is
+given a path as a command line argument. Since the command line argument may be
+a relative path, the complete path is determined so that messages displayed
+can be more precise.</p>
+<p>The program checks to see if the path exists; if not a message is printed.</p>
+<p>If the path identifies a directory, the directory is iterated through,
+printing the name of the entries found, and an indication if they are
+directories. A count of directories and files is updated, and then printed after
+the iteration is complete.</p>
+<p>If the path is for a file, a message indicating that is printed.</p>
+<p>Try compiling and executing simple_ls.cpp
+to see how it works on your system. Try various path arguments to see what
+happens.</p>
+<h3>file_size.cpp</h3>
+<p>This example program prints the file's size if it is a regular file.</p>
+<h3>Other examples</h3>
+<p>The programs used to generate the Boost regression test status tables use the
+Filesystem Library extensively.&nbsp; See:</p>
+<ul>
+ <li>process_jam_log.cpp</li>
+ <li>compiler_status.cpp</li>
+</ul>
+<p>Test programs are sometimes useful in understanding a library, as they
+illustrate what the developer expected to work and not work. See:</p>
+<ul>
+ <li>wide_test.cpp</li>
+ <li>path_test.cpp</li>
+ <li>operations_test.cpp</li>
+ <li>fstream_test.cpp</li>
+</ul>
+<h2><a name="Implementation">Implementation</a></h2>
+<p>The current implementation supports operating systems which provide
+either the POSIX or Windows API.</p>
+<p>The library is in regular use on Apple OS X, HP-UX, IBM AIX, Linux,
+Microsoft Windows, SGI IRIX, and Sun Solaris operating systems using a variety
+of compilers.</p>
+<h2><a name="Macros">Macros</a></h2>
+<p>Users may defined the following macros if desired. Sensible defaults are
+provided, so users can ignore these macros unless they have special needs.</p>
+<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td><b><i>Macro Name</i></b></td>
+ <td><b><i>Default</i></b></td>
+ <td><b><i>Effect if defined</i></b></td>
+ </tr>
+ <tr>
+ <td valign="top"><code>BOOST_FILESYSTEM_DYN_LINK</code></td>
+ <td valign="top">Defined if <code>BOOST_ALL_DYN_LINK</code> is defined,
+ otherwise not defined.</td>
+ <td valign="top">Boost.System library is dynamically linked. If not defined,
+ static linking is assumed.</td>
+ </tr>
+ <tr>
+ <td valign="top"><code>BOOST_FILESYSTEM_NO_LIB</code></td>
+ <td valign="top">Defined if <code>BOOST_ALL_NO_LIB</code> is defined,
+ otherwise not defined.</td>
+ <td valign="top">Boost.System library does not use the Boost auto-link
+ facility.</td>
+ </tr>
+ <tr>
+ <td valign="top"><code>BOOST_FILESYSTEM_NARROW_ONLY</code></td>
+ <td valign="top">Not defined.</td>
+ <td valign="top">Removes features that require wchar_t support.</td>
+ </tr>
+ <tr>
+ <td valign="top"><code>BOOST_FILESYSTEM_NO_DEPRECATED</code></td>
+ <td valign="top">Not defined.</td>
+ <td valign="top">Deprecated features are excluded.</td>
+ </tr>
+</table>
+<h2><a name="Deprecated-names">Deprecated names</a> and features</h2>
+<p style="font-size: 10pt">User-defined BOOST_POSIX_API and BOOST_WINDOWS_API
+macros are no longer supported.</p>
+<p style="font-size: 10pt">As the library evolves over time, names sometimes
+change or features are removed. To ease transition, Boost.Filesystem deprecates
+the old names and features, but continues to provide them unless macro <code>
+BOOST_FILESYSTEM_NO_DEPRECATED</code> is defined.</p>
+<table border="1" cellpadding="5" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td style="font-size: 10pt">
+ <b><i>Component</i></b></td>
+ <td style="font-size: 10pt">
+ <p style="font-size: 10pt"><b><i>Old name, now deprecated</i></b></td>
+ <td style="font-size: 10pt">
+ <p style="font-size: 10pt"><b><i>New name</i></b></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top"><code>basic_path</code></td>
+ <td style="font-size: 10pt"><code>leaf()</code></td>
+ <td style="font-size: 10pt"><code>filename()</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top"><code>basic_path</code></td>
+ <td style="font-size: 10pt"><code>branch_path()</code></td>
+ <td style="font-size: 10pt"><code>parent_path()</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top"><code>basic_path</code></td>
+ <td style="font-size: 10pt"><code>has_leaf()</code></td>
+ <td style="font-size: 10pt"><code>has_filename()</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top"><code>basic_path</code></td>
+ <td style="font-size: 10pt"><code>has_branch_path()</code></td>
+ <td style="font-size: 10pt"><code>has_parent_path()</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <p style="font-size: 10pt"><code>remove_leaf()</code></td>
+ <td style="font-size: 10pt">
+ <p style="font-size: 10pt"><code>remove_filename()</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>basic_path( const string_type &amp; str,<br>
+&nbsp; name_check )</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>basic_path( const string_type::value_type * s,<br>
+&nbsp; name_check )</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>native_file_string()</code></td>
+ <td style="font-size: 10pt">
+ <code>file_string()</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>native_directory_string()</code></td>
+ <td style="font-size: 10pt">
+ <code>directory_string()</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>default_name_check_writable()</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>default_name_check( name_check )</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>default_name_check()</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>canonize()</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_path</code></td>
+ <td style="font-size: 10pt">
+ <code>normalize()</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>operations.hpp</code></td>
+ <td style="font-size: 10pt">
+ <code>is_regular( file_status f )</code></td>
+ <td style="font-size: 10pt">
+ <code>is_regular_file( file_status f )</code></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>operations.hpp</code></td>
+ <td style="font-size: 10pt">
+ <code>symbolic_link_exists( const path &amp; ph )</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_directory_status</code></td>
+ <td style="font-size: 10pt">
+ <code>filename()</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed, use path().filename() instead</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_directory_status</code></td>
+ <td style="font-size: 10pt">
+ <code>leaf()</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed, use path().filename() instead</code></i></td>
+ </tr>
+ <tr>
+ <td style="font-size: 10pt" valign="top">
+ <code>basic_directory_status</code></td>
+ <td style="font-size: 10pt">
+ <code>string()</code></td>
+ <td style="font-size: 10pt">
+ <i><code>feature removed, use path().string() instead</code></i></td>
+ </tr>
+</table>
+<h2><a name="narrow-only">Restricting library to narrow character paths</a></h2>
+<p>Compilers or standard libraries which do not support wide characters (wchar_t)
+or wide character strings (std::wstring) are detected automatically, and cause
+the library to compile code that is restricted to narrow character paths
+(boost::filesystem::path). Users can force this restriction by defining the
+macro BOOST_FILESYSTEM_NARROW_ONLY. That may be useful for dealing with legacy
+compilers or operating systems.</p>
+<h2><a name="Building">Building</a> the object-library</h2>
+<p>The object-library will be built automatically if you are using the Boost
+build system. See
+Getting Started. It can also be
+built manually using a Jamfile
+supplied in directory libs/filesystem/build, or the user can construct an IDE
+project or make file which includes the object-library source files.</p>
+<p>The object-library source files are
+supplied in directory libs/filesystem/src. These source files implement the
+library for POSIX or Windows compatible operating systems; no implementation is
+supplied for other operating systems. Note that many operating systems not
+normally thought of as POSIX systems, such as mainframe legacy
+operating systems or embedded operating systems, support POSIX compatible file
+systems which will work with the Filesystem Library.</p>
+<p>The object-library can be built for static or dynamic (shared/dll) linking.
+This is controlled by the BOOST_ALL_DYN_LINK or BOOST_FILESYSTEM_DYN_LINK
+macros. See the <a href="/development/separate_compilation.html">Separate
+Compilation</a> page for a description of the techniques used.</p>
+<h3>Note for <a name="Cgywin">Cygwin</a> users</h3>
+<p>The library's implementation code treats Cygwin
+as a Windows platform, and thus uses the Windows API.</p>
+<h2><a name="Acknowledgements">Acknowledgements</a></h2>
+<p>The Filesystem Library was designed and implemented by Beman Dawes. The
+original <i>directory_iterator</i> and <i>filesystem_error</i> classes were
+based on prior work from Dietmar Kuehl, as modified by Jan Langer. Thomas Witt
+was a particular help in later stages of initial development. Peter Dimov and
+Rob Stewart made many useful suggestions and comments over a long period of
+time. Howard Hinnant helped with internationalization issues.</p>
+
+<p>Key design requirements and
+design realities were developed during
+extensive discussions on the Boost mailing list, followed by comments on the
+initial implementation. Numerous helpful comments were then received during the
+Formal Review.<p>Participants included
+Aaron Brashears,
+Alan Bellingham,
+Aleksey Gurtovoy,
+Alex Rosenberg,
+Alisdair Meredith,
+Andy Glew,
+Anthony Williams,
+Baptiste Lepilleur,
+Beman Dawes,
+Bill Kempf,
+Bill Seymour,
+Carl Daniel,
+Chris Little,
+Chuck Allison,
+Craig Henderson,
+Dan Nuffer,
+Dan'l Miller,
+Daniel Frey,
+Darin Adler,
+David Abrahams,
+David Held,
+Davlet Panech,
+Dietmar Kuehl,
+Douglas Gregor,
+Dylan Nicholson,
+Ed Brey,
+Eric Jensen,
+Eric Woodruff,
+Fedder Skovgaard,
+Gary Powell,
+Gennaro Prota,
+Geoff Leyland,
+George Heintzelman,
+Giovanni Bajo,
+Glen Knowles,
+Hillel Sims,
+Howard Hinnant,
+Jaap Suter,
+James Dennett,
+Jan Langer,
+Jani Kajala,
+Jason Stewart,
+Jeff Garland,
+Jens Maurer,
+Jesse Jones,
+Jim Hyslop,
+Joel de Guzman,
+Joel Young,
+John Levon,
+John Maddock,
+John Williston,
+Jonathan Caves,
+Jonathan Biggar,
+Jurko,
+Justus Schwartz,
+Keith Burton,
+Ken Hagen,
+Kostya Altukhov,
+Mark Rodgers,
+Martin Schuerch,
+Matt Austern,
+Matthias Troyer,
+Mattias Flodin,
+Michiel Salters,
+Mickael Pointier,
+Misha Bergal,
+Neal Becker,
+Noel Yap,
+Parksie,
+Patrick Hartling, Pavel Vozenilek,
+Pete Becker,
+Peter Dimov,
+Rainer Deyke,
+Rene Rivera,
+Rob Lievaart,
+Rob Stewart,
+Ron Garcia,
+Ross Smith,
+Sashan,
+Steve Robbins,
+Thomas Witt,
+Tom Harris,
+Toon Knapen,
+Victor Wagner,
+Vincent Finn,
+Vladimir Prus, and
+Yitzhak Sapir
+
+<p>A lengthy discussion on the C++ committee's library reflector illuminated the &quot;illusion
+of portability&quot; problem, particularly in postings by PJ Plauger and Pete Becker.</p>
+
+<p>Walter Landry provided much help illuminating symbolic link use cases for
+version 1.31.0.</p>
+
+<h3>Version 1.34 (i18n) acknowledgements</h3>
+
+<p>So many people have contributed comments and bug reports that it isn't any
+longer possible to acknowledge them individually. That said, Peter Dimov and Rob
+Stewart need to be specially thanked for their many constructive criticisms and
+suggestions. Terence
+Wilson and Chris Frey contributed timing programs which helped illuminate
+performance issues.</p>
+
+<h2><a name="Change-history">Change history</a></h2>
+
+<h3>Version 1.37.0</h3>
+
+<ul>
+ <li>Doc fixes: Update release history, add tables of macros and deprecated
+ names.</li>
+ <li>Bug fix: convenience.hpp didn't fully apply BOOST_FILESYSTEM_NO_DEPRECATED
+ to name changes.</li>
+ <li>Bug fix: Ticket #1972 'remove' fixes.</li>
+ <li>Bug fix: Restore deprecated basic_directory_entry names inadvertently
+ removed.</li>
+ <li>Bug fix: Provide deprecated functions has_branch_path and has_leaf,
+ inadvertently omitted from 1.36.0</li>
+ <li>Add workarounds for Codegear/Borland C++ Builder 2009.</li>
+</ul>
+
+<h3>Version 1.36.0 - August 14th, 2008</h3>
+
+<ul>
+ <li>Added stem(), extension(), and replace_extension() member functions to
+ basic_path, based on the basename(), extension(), and change_extension()
+ functions from convenience.hpp.</li>
+ <li>Changed path.hpp function names:<ul>
+ <li>leaf() -&gt; filename().</li>
+ <li>has_leaf() -&gt; has_filename().</li>
+ <li>branch_path() -&gt; parent_path().</li>
+ <li>has_branch_path() -&gt; has_parent_path().</li>
+ <li>remove_leaf() -&gt; remove_filename().</li>
+ </ul>
+ </li>
+ <li>Changed operations.hpp function names:<ul>
+ <li>is_regular() -&gt; is_regular_file().</li>
+ </ul>
+ </li>
+ <li>Bug fix: Add path.cpp #include &lt;cwchar&gt;</li>
+ <li>Cleared path.hpp gcc shadow warnings.</li>
+</ul>
+
+<h3>Version 1.35.0 - March 29th, 2008</h3>
+
+<ul>
+ <li>Diagnostics moved to the separate <a href="../../../system/doc/index.html">
+ Boost.System</a> library.</li>
+ <li>current_path() function added to set the current directory path.</li>
+ <li>Test coverage extended.</li>
+ <li>A few minor implementation fixes.</li>
+</ul>
+
+<h3>Version 1.34.1 - July 24th, 2007</h3>
+
+<h3>Version 1.34.0 - May 12th, 2007</h3>
+
+<ul>
+ <li>Internationalization, provided by
+ class templates <i>basic_path</i>, <i>basic_filesystem_error</i>, and <i>
+ basic_directory_iterator</i>.</li>
+ <li>Simplification of the path interface,
+ including elimination of distinction between native and generic formats,
+ and separation of name checking functionality from general path functionality.</li>
+ <li>Rationalization of predicate
+ function design, including the addition of several new functions.</li>
+ <li>Preservation of existing user code whenever
+ possible. Deprecated features (<i>symbolic_link_exists()</i>, etc.) remain
+ available for legacy code.</li>
+ <li>Clearer specification, by reference to [POSIX-01],
+ the ISO/IEEE Single Unix Standard, with provisions for Windows and other
+ operating systems.</li>
+ <li>New functions status,
+ symlink_status,
+ is_file,
+ is_symlink,
+ create_hard_link,
+ create_symlink, path member and non-member swap, path inserter, path
+ extractor, additional path relational and &quot;/&quot; operator overloads, additional
+ path member template functions taking iterator arguments.</li>
+ <li>More efficient operations when iterating over directories.</li>
+ <li>Separation within the implementation of the distinction between the native
+ operating system path syntax and API. This is important for CYGWIN users
+ because it allows them to build for either the Windows or POSIX API's.</li>
+ <li>Numerous small implementation fixes.</li>
+</ul>
+
+<h3>Version 1.33.0 - August 11th, 2005</h3>
+
+<ul>
+ <li>Some small implementation fixes.</li>
+</ul>
+
+<h3>Version 1.32.0 - November 19th, 2004</h3>
+
+<ul>
+ <li>file_size() function added.</li>
+ <li>Class path relational operators added.</li>
+ <li>equivalent() function added.</li>
+ <li>create_directory() no longer
+ throws if the directory already exists. A bool is returned, indicating that
+ the directory did not preexist. Similar changes made to
+ create_directories().</li>
+ <li>Docs added for users wishing Cygwin/POSIX behavior
+ on Windows.</li>
+ <li>For POSIX, Large File Support (LSF) is enabled if available, such as on
+ Linux.</li>
+ <li>current_path() and
+ initial_path() on POSIX now handle
+ very long paths correctly.</li>
+</ul>
+
+<h3>Version 1.31.0 - January 26th, 2004</h3>
+
+<ul>
+ <li>The object library can now be built for either
+ static or dynamic (shared/dll) linking. </li>
+ <li>Several added functions, including improved checking for directory and
+ file name portability. See <a href="portability_guide.htm#name_check_functions">
+ Name check functions</a>.</li>
+ <li>Separation of canonical form and normalized form and a new path member
+ function normalize(). This changes behavior,
+ in that canonical form is now different, but eliminates a subtle
+ bug when symbolic links to
+ directories are present.</li>
+</ul>
+
+<h3>&nbsp;<br>
+Version 1.30.0 - March 19th, 2003</h3>
+<ul>
+ <li>Initial official Boost version.</li>
+</ul>
+
+<hr>
+<p>Revised
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->03 December, 2010<!--webbot bot="Timestamp" endspan i-checksum="38634" --></p>
+
+<p>&copy; Copyright Beman Dawes, 2002-2005</p>
+<p> Use, modification, and distribution are subject to the Boost Software
+License, Version 1.0. See <a href="/LICENSE_1_0.txt">
+www.boost.org/LICENSE_1_0.txt</a></p>
+
+</body>
+
+</html>
\ No newline at end of file

Added: website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v3/doc/index.htm
==============================================================================
--- (empty file)
+++ website/public_html/beta/doc/libs/1_45_0/libs/filesystem/v3/doc/index.htm 2010-12-09 10:22:24 EST (Thu, 09 Dec 2010)
@@ -0,0 +1,478 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Filesystem Home</title>
+<link rel="stylesheet" type="text/css" href="../../../../doc/src/minimal.css">
+</head>
+
+<body>
+
+<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td width="277">
+<a href="../../../../index.htm">
+<img src="../../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
+ <td align="middle">
+ <font size="7">Filesystem Library<br>
+ Version 3</font>
+ </td>
+ </tr>
+</table>
+
+<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" bgcolor="#D7EEFF" width="100%">
+ <tr>
+ <td>Boost Home &nbsp;&nbsp;
+ Library Home &nbsp;&nbsp;
+ Reference &nbsp;&nbsp;
+ Tutorial &nbsp;&nbsp;
+ FAQ &nbsp;&nbsp;
+ Portability &nbsp;&nbsp;
+ V3 Intro &nbsp;&nbsp;
+ V3 Design &nbsp;&nbsp;
+ Deprecated &nbsp;&nbsp;
+ </td>
+ </tr>
+</table>
+
+<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" align="right">
+ <tr>
+ <td width="100%" bgcolor="#D7EEFF" align="center">
+ <i><b>Contents</b></i></td>
+ </tr>
+ <tr>
+ <td width="100%" bgcolor="#E8F5FF">
+ Introduction<br>
+ Documentation<br>
+ Using the library<br>
+ Coding guidelines<br>
+ Cautions<br>
+ Headers<br>
+ Example programs<br>
+ Implementation<br>
+ Macros<br>
+ Building the object-library<br>
+ Notes for Cygwin users<br>
+ <a href="#Change-history">Version history<br>
+&nbsp; with acknowledgements</a></td>
+ </tr>
+ </table>
+
+<div align="center">
+ <center>
+ <table border="1" cellpadding="10" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td>
+ <p align="center"><b>This is the home page for Version 3 of the Filesystem library.</b></p>
+ <p align="center">Version 3 is a major revision with many new and improved
+ features. It may, however, break some user code written for Version 2.</p>
+ <p align="center">To ease the transition, Boost releases 1.44 through 1.47
+ will supply both V2 and V3. Version 2
+ is the default version for Boost release 1.44
+ and 1.45. Version 3 will be the default starting with release 1.46.</p>
+ <p align="center"><b>Define macro BOOST_FILESYSTEM_VERSION as 3 to use Version 3. You may do this via a
+ compiler argument or via <code>#define BOOST_FILESYSTEM_VERSION 3</code>.
+ This will be the default for release 1.46 and later.</b></p>
+ <p align="center"><b>Define macro BOOST_FILESYSTEM_VERSION as 2 to use Version
+ 2. You may do this via a
+ compiler argument or via <code>#define BOOST_FILESYSTEM_VERSION 2</code>.
+ This is the default for release 1.44 and 1.45.</b></p>
+ <p align="center">Existing code should be moved to Version 3 as soon as
+ convenient. New code should be written for Version 3.</p>
+ <p align="center">Version 2 is deprecated, and will not be included in Boost
+ releases 1.48 and later.</p>
+ </td>
+ </tr>
+ </table>
+ </center>
+</div>
+
+<h2><a name="Introduction">Introduction</a></h2>
+<p>The Boost.Filesystem library provides facilities to manipulate files and directories,
+and the paths that identify them.</p>
+
+<p>The features of the library include:</p>
+
+<ul>
+ <li><b>A modern C++ interface, highly compatible with the C++ standard
+ library.</b></li>
+</ul>
+<blockquote>
+ <blockquote>
+
+<p>Many users say the interface is their primary motivation for using
+Boost.Filesystem. They like its use of familiar idioms based on standard library
+containers, iterators, and algorithms. They like having errors reported by
+throwing exceptions.</p>
+
+ </blockquote>
+</blockquote>
+<ul>
+ <li><b>Portability between operating systems.</b><br>
+&nbsp;<ul>
+ <li>At the C++ syntax level, it is convenient to learn and use one interface
+ regardless of the operating system.</li>
+ <li>At the semantic level, behavior of code is reasonably portable across
+ operating systems.</li>
+ <li>Dual generic or native path format support encourages program
+ portability, yet still allows communication with users in system specific
+ formats.<br>
+&nbsp;</li>
+ </ul>
+ </li>
+ <li><b>Error handling and reporting via C++ exceptions (the default) or error
+ codes.</b><br>
+&nbsp;<ul>
+ <li>C++ exceptions are the preferred error reporting mechanism for most
+ applications. The exception thrown includes the detailed error code
+ information important for diagnosing the exact cause of file system errors.</li>
+ <li>Error reporting via error code allows user code that provides detailed
+ error recovery to avoid becoming so littered with try-catch blocks as to be
+ unmaintainable. <br>
+&nbsp;</li>
+ </ul>
+ </li>
+ <li><b>Suitable for a broad spectrum of applications, ranging from simple
+ script-like operations to extremely complex production code.</b><br>
+&nbsp;<ul>
+ <li>At the simple script-like end of the spectrum, the intent is not to
+ compete with Python, Perl, or shell languages, but rather to provide
+ filesystem operations when C++ is already the language of choice.</li>
+ <li>Finer grained control over operations and error handling is available to
+ support more complex applications or other cases where throwing exceptions
+ isn't desired.</li>
+ </ul>
+ </li>
+</ul>
+
+<p>A proposal,
+<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1975.html">
+N1975</a>, to include Boost.Filesystem in Technical Report 2 has been accepted
+by the C++ Standards Committee. That proposal was based on version 2 of
+Boost.Filesystem; presumably the final TR2 form will be based on version 3.</p>
+
+<h2><a name="Documentation">Documentation</a></h2>
+
+<p><b>Tutorial</b> - A gentle introduction to
+the library, with example programs provided for you to experiment with.</p>
+
+<p><b>Reference</b> - Formal documentation in the
+style of the C++ standard for
+every component of the library.</p>
+
+<p><b>FAQ</b> - Frequently asked questions.</p>
+
+<p><b>Portability Guide</b> - Help for those
+concerned with writing code to run on multiple operating systems.</p>
+
+<p><b>Deprecated Features</b> - Identifies
+deprecated features and their replacements.</p>
+
+<p><b>Version 3 Introduction</b> - Aimed at users of prior
+Boost.Filesystem versions.</p>
+
+<p><b>Version 3 Design</b> - Historical document
+from the start of the Version 3 design process.</p>
+
+<p><b>Original Design</b> - Historical document from
+the start of the Version 1 design process.</p>
+
+<p><b>Do List</b> - Boost.Filesystem development work
+in the pipeline.</p>
+
+<h2><a name="Using">Using</a> the library</h2>
+<p>Boost.Filesystem is implemented as a separately compiled library, so you must install
+binaries in a location that can be found by your linker. If you followed the
+Boost Getting Started instructions, that's already been done for you.</p>
+<h2><a name="Coding-guidelines">Coding guidelines</a></h2>
+<p>For new code, defining <code>BOOST_FILESYSTEM_NO_DEPRECATED</code> before
+including filesystem headers is strongly recommended. This prevents inadvertent
+use of old features, particularly legacy function names, that have been replaced
+and are going to go away in the future.</p>
+<h2><a name="Cautions">Cautions</a></h2>
+<p>After reading the tutorial you can dive right into simple,
+script-like programs using the Filesystem Library! Before doing any serious
+work, however, there a few cautions to be aware of:</p>
+<h4><b>Effects and Postconditions not guaranteed in the presence of race-conditions</b></h4>
+<p>Filesystem function specifications follow the C++ Standard Library form, specifying behavior in terms of
+effects and postconditions. If
+a race-condition exists, a function's
+postconditions may no longer be true by the time the function returns to the
+caller.</p>
+<blockquote>
+<p><b><i>Explanation: </i></b>The state of files and directories is often
+globally shared, and thus may be changed unexpectedly by other threads,
+processes, or even other computers having network access to the filesystem. As an
+example of the difficulties this can cause, note that the following asserts
+may fail:</p>
+<blockquote>
+<p><code>assert( exists( &quot;foo&quot; ) == exists( &quot;foo&quot; ) );&nbsp; //
+(1)<br>
+<br>
+remove_all( &quot;foo&quot; );<br>
+assert( !exists( &quot;foo&quot; ) );&nbsp; // (2)<br>
+<br>
+assert( is_directory( &quot;foo&quot; ) == is_directory( &quot;foo&quot; ) ); //
+(3)</code></p>
+</blockquote>
+<p>(1) will fail if a non-existent &quot;foo&quot; comes into existence, or an
+existent &quot;foo&quot; is removed, between the first and second call to <i>exists()</i>.
+This could happen if, during the execution of the example code, another thread,
+process, or computer is also performing operations in the same directory.</p>
+<p>(2) will fail if between the call to <i>remove_all()</i> and the call to
+<i>exists()</i> a new file or directory named &quot;foo&quot; is created by another
+thread, process, or computer.</p>
+<p>(3) will fail if another thread, process, or computer removes an
+existing file &quot;foo&quot; and then creates a directory named &quot;foo&quot;, between the
+example code's two calls to <i>is_directory()</i>.</p>
+</blockquote>
+<h4><b>May throw exceptions</b></h4>
+<p>Unless otherwise specified, Boost.Filesystem functions throw <i>
+basic_filesystem_error</i>
+exceptions if they cannot successfully complete their operational
+specifications. Also, implementations may use C++ Standard Library functions,
+which may throw <i>std::bad_alloc</i>. These exceptions may be thrown even
+though the error condition leading to the exception is not explicitly specified
+in the function's &quot;Throws&quot; paragraph.</p>
+<p>All exceptions thrown by the Filesystem
+Library are implemented by calling <a href="../../../utility/throw_exception.html">
+boost::throw_exception()</a>. Thus exact behavior may differ depending on
+BOOST_NO_EXCEPTIONS at the time the filesystem source files are compiled.</p>
+<p>Non-throwing versions are provided of several functions that are often used
+in contexts where error codes may be the preferred way to report an error.</p>
+
+<h2><a name="Headers">Headers</a></h2>
+
+<p>The Boost.Filesystem library provides several&nbsp;headers:</p>
+
+<ul>
+ <li>Header &lt;boost/filesystem.hpp&gt;
+ provides access to all features of the library, except file streams.<br>
+&nbsp;</li>
+ <li>Header &lt;boost/filesystem/fstream.hpp&gt;
+ inherits the same components as the C++ Standard
+ Library's <i>fstream</i> header, but files are identified by <code>const path&amp;</code>
+ arguments rather that <code>const char*</code> arguments.</li>
+</ul>
+<h2><a name="Examples">Example programs</a></h2>
+<p>See the tutorial for example programs.</p>
+<h3>Other examples</h3>
+<p>The programs used to generate the Boost regression test status tables use the
+Filesystem Library extensively.&nbsp; See:</p>
+<ul>
+ <li>process_jam_log.cpp</li>
+ <li>compiler_status.cpp</li>
+</ul>
+<h2><a name="Implementation">Implementation</a></h2>
+<p>The current implementation supports operating systems which provide
+the POSIX or Windows API's.</p>
+<p>The library is in regular use on Apple OS X, HP-UX, IBM AIX, Linux,
+Microsoft Windows, SGI IRIX, and Sun Solaris operating systems using a variety
+of compilers.</p>
+<h2><a name="Macros">Macros</a></h2>
+<p>Users may defined the following macros if desired. Sensible defaults are
+provided, so users can ignore these macros unless they have special needs.</p>
+<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td><b><i>Macro Name</i></b></td>
+ <td><b><i>Default</i></b></td>
+ <td><b><i>Effect if defined</i></b></td>
+ </tr>
+ <tr>
+ <td valign="top"><code>BOOST_FILESYSTEM_NO_DEPRECATED</code></td>
+ <td valign="top">Not defined.</td>
+ <td valign="top">Deprecated features are excluded from headers.</td>
+ </tr>
+ <tr>
+ <td valign="top"><code>BOOST_FILESYSTEM_DYN_LINK</code></td>
+ <td valign="top">Defined if <code>BOOST_ALL_DYN_LINK</code> is defined,
+ otherwise not defined.</td>
+ <td valign="top">The Boost.Filesystem library is dynamically linked. If not defined,
+ static linking is assumed.</td>
+ </tr>
+ <tr>
+ <td valign="top"><code>BOOST_FILESYSTEM_NO_LIB</code></td>
+ <td valign="top">Defined if <code>BOOST_ALL_NO_LIB</code> is defined,
+ otherwise not defined.</td>
+ <td valign="top">Boost.Filesystem library does not use the Boost auto-link
+ facility.</td>
+ </tr>
+ </table>
+<p>User-defined BOOST_POSIX_API and BOOST_WINDOWS_API macros are no longer
+supported.</p>
+<h2><a name="Building">Building</a> the object-library</h2>
+<p>The object-library will be built automatically if you are using the Boost
+build system. See
+Getting Started. It can also be
+built manually using a Jamfile
+supplied in directory libs/filesystem/build, or the user can construct an IDE
+project or make file which includes the object-library source files.</p>
+<p>The object-library source files are
+supplied in directory libs/filesystem/src. These source files implement the
+library for POSIX or Windows compatible operating systems; no implementation is
+supplied for other operating systems. Note that many operating systems not
+normally thought of as POSIX systems, such as mainframe legacy
+operating systems or embedded operating systems, support POSIX compatible file
+systems and so will work with the Filesystem Library.</p>
+<p>The object-library can be built for static or dynamic (shared/dll) linking.
+This is controlled by the BOOST_ALL_DYN_LINK or BOOST_FILESYSTEM_DYN_LINK
+macros. See the <a href="/development/separate_compilation.html">Separate
+Compilation</a> page for a description of the techniques used.</p>
+<h3>Note for <a name="Cgywin">Cygwin</a> users</h3>
+<p> Cygwin version 1.7 or later is
+required because only versions of GCC with wide character strings are supported.</p>
+
+<p> The library's implementation code treats Cygwin as a Windows platform, and
+thus uses the Windows API and uses Windows path syntax as the native path
+syntax.</p>
+
+<h2><a name="Change-history">Version history</a></h2>
+
+<h3>Version 3</h3>
+
+<p>Boost <span style="background-color: #FFFF00">1.??.0 - ???, 2010</span> - Internationalization via single class <code>path</code>.
+More uniform error handling.</p>
+
+<p>Peter Dimov suggested use of a single path class rather than a <code>basic_path</code>
+class template. That idea was the basis for the Version 3 redesign.</p>
+
+<p>Thanks for comments from Robert Stewart, Zach Laine, Peter Dimov, Gregory
+Peele, Scott McMurray, John Bytheway, Jeff Flinn, Jeffery Bosboom.</p>
+
+<h3>Version 2</h3>
+
+<p>Boost 1.34.0 - May, 2007 - Internationalization via <code>basic_path</code>
+template.</p>
+
+<p>So many people have contributed comments and bug reports that it isn't any
+longer possible to acknowledge them individually. That said, Peter Dimov and Rob
+Stewart need to be specially thanked for their many constructive criticisms and
+suggestions. Terence
+Wilson and Chris Frey contributed timing programs which helped illuminate
+performance issues.</p>
+
+<h3>Version 1</h3>
+
+<p>Boost 1.30.0 - March, 2003 - Initial official Boost release.</p>
+
+<p>The Filesystem Library was designed and implemented by Beman Dawes. The
+original <i>directory_iterator</i> and <i>filesystem_error</i> classes were
+based on prior work from Dietmar Kuehl, as modified by Jan Langer. Thomas Witt
+was a particular help in later stages of initial development. Peter Dimov and
+Rob Stewart made many useful suggestions and comments over a long period of
+time. Howard Hinnant helped with internationalization issues.</p>
+
+<p>Key design requirements and
+design realities were developed during
+extensive discussions on the Boost mailing list, followed by comments on the
+initial implementation. Numerous helpful comments were then received during the
+Formal Review.<p>Participants included
+Aaron Brashears,
+Alan Bellingham,
+Aleksey Gurtovoy,
+Alex Rosenberg,
+Alisdair Meredith,
+Andy Glew,
+Anthony Williams,
+Baptiste Lepilleur,
+Beman Dawes,
+Bill Kempf,
+Bill Seymour,
+Carl Daniel,
+Chris Little,
+Chuck Allison,
+Craig Henderson,
+Dan Nuffer,
+Dan'l Miller,
+Daniel Frey,
+Darin Adler,
+David Abrahams,
+David Held,
+Davlet Panech,
+Dietmar Kuehl,
+Douglas Gregor,
+Dylan Nicholson,
+Ed Brey,
+Eric Jensen,
+Eric Woodruff,
+Fedder Skovgaard,
+Gary Powell,
+Gennaro Prota,
+Geoff Leyland,
+George Heintzelman,
+Giovanni Bajo,
+Glen Knowles,
+Hillel Sims,
+Howard Hinnant,
+Jaap Suter,
+James Dennett,
+Jan Langer,
+Jani Kajala,
+Jason Stewart,
+Jeff Garland,
+Jens Maurer,
+Jesse Jones,
+Jim Hyslop,
+Joel de Guzman,
+Joel Young,
+John Levon,
+John Maddock,
+John Williston,
+Jonathan Caves,
+Jonathan Biggar,
+Jurko,
+Justus Schwartz,
+Keith Burton,
+Ken Hagen,
+Kostya Altukhov,
+Mark Rodgers,
+Martin Schuerch,
+Matt Austern,
+Matthias Troyer,
+Mattias Flodin,
+Michiel Salters,
+Mickael Pointier,
+Misha Bergal,
+Neal Becker,
+Noel Yap,
+Parksie,
+Patrick Hartling, Pavel Vozenilek,
+Pete Becker,
+Peter Dimov,
+Rainer Deyke,
+Rene Rivera,
+Rob Lievaart,
+Rob Stewart,
+Ron Garcia,
+Ross Smith,
+Sashan,
+Steve Robbins,
+Thomas Witt,
+Tom Harris,
+Toon Knapen,
+Victor Wagner,
+Vincent Finn,
+Vladimir Prus, and
+Yitzhak Sapir
+
+<p>A lengthy discussion on the C++ committee's library reflector illuminated the &quot;illusion
+of portability&quot; problem, particularly in postings by PJ Plauger and Pete Becker.</p>
+
+<p>Walter Landry provided much help illuminating symbolic link use cases for
+version 1.31.0.&nbsp;</p>
+
+<hr>
+<p>Revised
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->03 December, 2010<!--webbot bot="Timestamp" endspan i-checksum="38634" --></p>
+
+<p>&copy; Copyright Beman Dawes, 2002-2005</p>
+<p> Use, modification, and distribution are subject to the Boost Software
+License, Version 1.0. See <a href="/LICENSE_1_0.txt">
+www.boost.org/LICENSE_1_0.txt</a></p>
+
+</body>
+
+</html>
\ No newline at end of file


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk