filesystem/doc/do_list.html
Andrey Semashev 9a14c37d6f Added directory_options. Set recursive_dir_iterator to end or pop on errors.
The directory_options enum reflects the same-named enum from C++20. It is now
supported by both directory_iterator and recursive_directory_iterator. In
particular, both iterators now support skip_permission_denied option.

recursive_directory_iterator is now set to end by default on errors, as
required by C++20. An additional directory_options::pop_on_error policy
is added to allow the iterator recover from an error. When this option is
specified and an error occurs, the iterator repeatedly pops the recursion level
until the pop completes successfully or the end state is reached.

recursive_directory_iterator that have standard counterparts (level,
no_push_pending, no_push_request and no_push) are now deprecated and can be
removed by defining BOOST_FILESYSTEM_NO_DEPRECATED. These members will be
removed in a future release.

Docs and tests updated accordingly. Also, in docs reconstructed release history
for the past releases from Boost release notes.

Fixes https://github.com/boostorg/filesystem/issues/112
Fixes https://github.com/boostorg/filesystem/issues/113
2019-08-02 19:43:46 +03:00

147 lines
5.8 KiB
HTML

<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=utf-8">
<title>Do List</title>
<style type="text/css">
body { font-family: sans-serif; margin: 1em; }
p, td, li, blockquote { font-size: 10pt; }
pre { font-size: 9pt; }
</style>
</head>
<body>
<h1>Boost Filesystem Do List<br>
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->24 June 2010<!--webbot bot="Timestamp" endspan i-checksum="17552" --></h1>
<h2>Beta 1 comments</h2>
<ul>
<li dir="ltr">
<p dir="ltr">Zach Laine:</li>
</ul>
<blockquote>
<pre dir="ltr">The descriptions for portable_name() and portable_directory_name()
appear to be at odds.
portable_name() : ... &amp;&amp; (name is &quot;.&quot; or &quot;..&quot;, and the first character
not a period or hyphen)
portable_directory_name(): ... &amp;&amp; (name is &quot;.&quot; or &quot;..&quot; &nbsp;or contains no periods)
Should portable_name() be &quot;... &amp;&amp; (name is &quot;.&quot; or &quot;..&quot;, or contains no
periods) &amp;&amp; (first character not a hyphen)&quot;? &nbsp;Maybe I'm missing
something?</pre>
</blockquote>
<ul>
<li dir="ltr">
<p dir="ltr">Scott McMurray - treat as Wish List:</li>
</ul>
<blockquote>
<pre dir="ltr">- uncomplete(p, base)
My pet request. &nbsp;It may be useful to simplify other functions as well,
since there's no current way to go from an absolute path to a relative
one, meaning that most functions need to handle relative ones even
when that might not be natural. &nbsp;With this functionality,
preconditions requiring absolute paths would be less onerous.
&nbsp; &nbsp;Precondition: p.is_absolute() &amp;&amp; base.is_absolute()
&nbsp; &nbsp;Effects: Extracts a path, rp, from p relative to base such that
canonical(p) == complete(rp, base). &nbsp;Any &quot;..&quot; path elements in rp form
a prefix.
&nbsp; &nbsp;Returns: The extracted path.
&nbsp; &nbsp;Postconditions: For the returned path, rp, rp.is_relative() ==
(p.root_name() == b.root_name()).
[Notes: This function simplifies paths by omitting context. &nbsp;It is
particularly useful for serializing paths such that it can be usefully
moved between hosts where the context may be different, such as inside
source control trees. &nbsp;It can also be helpful for display to users,
such as in shells where paths are often shown relative to $HOME.
In the presence of symlinks, the result of this function may differ
between implementations, as some may expand symlinks that others may
not. &nbsp;The simplest implementation uses canonical to expand both p and
base, then removes the common prefix and prepends the requisite &quot;..&quot;
elements. &nbsp;Smarter implementations will avoid expanding symlinks
unnecessarily. &nbsp;No implementation is expected to discover new symlinks
to return paths with fewer elements.]</pre>
</blockquote>
<h2 dir="ltr">Docs</h2>
<ul>
<li>Reorganize files - delete examples that no longer apply.</li>
<li>Should minimal.css be changed to used relative font sizes? See
<a href="http://www.w3schools.com/CSS/pr_font_font-size.asp/">http://www.w3schools.com/CSS/pr_font_font-size.asp\</a></li>
<li>Document behavior of path::replace_extension has change WRT argument w/o a
dot.</li>
<li style="font-size: 10pt">Document leading //: no longer treated specially.
But is that really correct?</li>
<li style="font-size: 10pt">Behavior of root_path() has been changed. Change
needs to be propagated to trunk?</li>
<li style="font-size: 10pt">Regenerate path decomposition table.</li>
</ul>
<h2>Code</h2>
<h3>All</h3>
<ul>
<li style="font-size: 10pt">Move semantics.</li>
<li style="font-size: 10pt">Use BOOST_DELETED, BOOST_DEFAULTED, where
appropriate.</li>
<li style="font-size: 10pt">Other C++0x features.</li>
</ul>
<h3>Class path</h3>
<ul>
<li>Windows, POSIX, conversions for char16_t, char32_t for C++0x compilers.</li>
<li>Add Windows Alternate Data Stream test cases. See http://en.wikipedia.org/wiki/NTFS
Features.</li>
<li>Add test case: relational operators on paths differing only in trailing
separator. Rationale?</li>
<li>Provide the name check functions for more character types? Templatize?
take a path argument?</li>
<li style="font-size: 10pt">Add codepage 936/950/etc test cases.</li>
<li style="font-size: 10pt">Should UDT's be supported?</li>
<li style="font-size: 10pt">Should path iteration to a separator result in:<br>
-- the actual separator used<br>
-- the preferred separator<br>
-- the generic separator &lt;-- makes it easier to write portable code<br>
-- a dot</li>
</ul>
<h3>Operations</h3>
<ul>
<li>Would complete(), system_complete() be clearer if renamed absolute(),
absolute_system() (or absolute_native())?</li>
<li>Review all operations.cpp code for race conditions similar to #2925. Fix
or document.</li>
<li>Enable all BOOST_FILESYSTEM_NO_DEPRECATED code.</li>
<li>rename and remove names are problems. If users says &quot;using
namespace boost::filesystem&quot;<br>
and some header included stdio, there is just too much chance of silent error.</li>
<li>create_directories error handling needs work.</li>
<li>Fold convenience.hpp into operations.hpp</li>
<li>Two argument recursive_directory_iterator ctor isn't recognizing throws().
Would it be better to fold into a single two argument ctor with default?</li>
<li>Add the push_directory class from tools/release/required_files.cpp</li>
</ul>
<h3>Miscellaneous</h3>
<ul>
<li style="font-size: 10pt"><i>Regular</i> classes need hash functions.</li>
</ul>
<hr>
<p>&copy; Copyright Beman Dawes, 2010</p>
<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>
</body>
</html>