4 <meta http-equiv="Content-Language" content="en-us">
5 <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
6 <meta name="ProgId" content="FrontPage.Editor.Document">
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
8 <title>Filesystem Release History</title>
9 <link href="styles.css" rel="stylesheet">
14 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
17 <a href="../../../index.htm">
18 <img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
20 <font size="7">Filesystem Release History</font>
25 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse"
26 bordercolor="#111111" bgcolor="#D7EEFF" width="100%">
28 <td><a href="index.htm">Home</a>
29 <a href="tutorial.html">Tutorial</a>
30 <a href="reference.html">Reference</a>
31 <a href="faq.htm">FAQ</a>
32 <a href="release_history.html">Releases</a>
33 <a href="portability_guide.htm">Portability</a>
34 <a href="v3.html">V3 Intro</a>
35 <a href="v3_design.html">V3 Design</a>
36 <a href="deprecated.html">Deprecated</a>
37 <a href="issue_reporting.html">Bug Reports </a>
43 <li>Clean up some tutorial example code and fix the wording for it in the
44 tutorial. Thanks to Anmol-Singh-Jaggi for pull request #11.</li>
49 <li><code>is_empty()</code>overload with <code>error_code</code> parameter
50 should not throw on error. Thanks to ldqrk for pull request #42</li>
51 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/10731">#10731</a> and
52 <a href="https://svn.boost.org/trac/boost/ticket/9480">#9480</a>, <i>Evaluate
53 path.extension only once</i>. Thanks to Daniel Krügler for pull request #41.</li>
54 <li>Fix error propagation in <code>space(p, ec)</code>. Thanks to cmuellner
55 for pull request #39.</li>
56 <li>Add test/config_info.cpp to increase macro state reporting in hopes of
57 easing debugging on remote machines.</li>
58 <li>Fix <code>operations_test</code> failure on MinGW: MinGW defines
59 __MINGW32__ rather than _MSC_VER, so also test for __MINGW32__ to see if
60 setenv/unsetenv workaround needed.</li>
66 <p dir="ltr"><b>Deprecated <code>generic()</code> function name</b>: The undocumented experimental class
67 <code>path</code> member function <code>generic()</code> has been renamed <code>
68 generic_path()</code>. Fixes
69 <a href="https://svn.boost.org/trac/boost/ticket/11855">#11855</a>, <i>generic
70 gives problems in C++/CLI.</i> Unless the macro BOOST_FILESYSTEM_NO_DEPRECATED
71 is defined, the original <code>generic()</code> will continue to be supplied
72 as a workaround for existing user code. But <code>generic()</code>is
73 deprecated. User code should migrate to the new name.</li>
74 <li><b>New:</b> Class <code>path</code> adds constexpr constants <code>
75 separator</code> and <code>dot</code> of the type appropriate for the
76 platform, and adds query functions <a href="reference.html#filename_is_dot">
77 <code>filename_is_do</code>t</a> and <code>
78 <a href="reference.html#filename_is_dot_dot">filename_is_dot_dot</a></code>.
79 These add convenience and the implementations may be more efficient that user
80 coded equivalent functions.</li>
81 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/12578">#12578</a>, <i>
82 Make directory iterators able to detect when a copy has advanced to the end</i>.
83 This bug in <code>directory_iterator</code> and <code>
84 recursive_directory_iterator</code> equality testing has existed more than a
85 dozen years. Nowadays test driven development would likely have detected the
86 problem in early development. Sigh.</li>
87 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/12495">#12495</a>, <i>
88 <code>create_directories()</code> crashes when passed empty string as path</i>,
89 from Samantha Ritter. Also affected <code>create_directory()</code>. Charles
90 Olivi submitted a pull request with some particularly helpful test cases.</li>
91 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/7307">#7307</a>, <i>
92 remove_all(dirname,ec) throws on write protected directories.</i> This is a
93 tough one to test. There are three internal function calls where errors might
94 arise, and it would take too much time to write tests for each of those cases.
95 Someday we will have Titus Winter's mock installable file system, but for now
96 are relying on code inspection rather than testing.</li>
97 <li>Fix a cygwin warning and a cygwin error. Thanks to thtrummer for pull
99 <li>Fixed two broken links in reference docs. Thanks to tbeu for pull
101 <li>Fix reference doc signatures for <code>path</code> stem(), extension()
102 member functions. Thanks to faithandbrave for pull request #31</li>
103 <li>Fix broken link to <a href="https://svn.boost.org/trac/boost/ticket/7506">#7506</a> in 1.60.0 Release History (Daniel Krügler).</li>
104 <li>Refactor <code>push_directory()</code>internal logic so it is easier to
111 <p dir="ltr"><b>New:</b> Added functions <code>
112 <a href="reference.html#lex-normal">lexically_normal</a></code>, <code>
113 <a href="reference.html#lex-relative">lexically_relative</a></code>, <code>
114 <a href="reference.html#op-relative">relative</a></code>, and <code>
115 <a href="reference.html#weakly_canonical">weakly_canonical</a></code>. Many thanks to Jamie Allsop for his help and
116 perseverance. Resolves tickets
117 <a href="https://svn.boost.org/trac/boost/ticket/1976">#1976</a>,
118 <a href="https://svn.boost.org/trac/boost/ticket/5897">#5897</a>,
119 <a href="https://svn.boost.org/trac/boost/ticket/6249">#6249</a></li>
120 <li><b>New:</b> Class <code>path</code> now has
121 <a href="reference.html#path-iterators"> <code>reverse_iterator</code>,
122 <code>const_reverse_iterator</code>, <code>rbegin()</code>, and <code>rend()</code></a>. </li>
123 <li><b>New:</b> C++11 <code>noexcept</code> supplied as specified in the
124 Filesystem TS if supported by the compiler.</li>
125 <li><b>New:</b> C++11 move constructors and move assignments supplied as
126 specified in the Filesystem TS if supported by the compiler. Resolves
127 <a href="https://svn.boost.org/trac/boost/ticket/10291">#10291</a>.</li>
128 <li><b>New:</b> Existing functions whose names changed in the Filesystem TS
129 are now supported under both the old and new names.</li>
130 <li><b>New: </b>Added <code><a href="reference.html#path-size">size</a>()</code>
131 function to class <code>path</code>. Resolves
132 <a href="https://svn.boost.org/trac/boost/ticket/6874">#6874</a>, <i>Path
133 should have a size() member function</i>.</li>
134 <li>Clear several spurious GCC warnings.</li>
135 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/11733">#11733</a>, <i>
136 Missing unistd.h include in boost/libs/filesystem/src/unique_path.cpp</i> by
137 apply a patch from Idar Tollefsen.</li>
138 <li>Fix a race condition in <code>unique_path</code> by applying
139 <a href="https://github.com/boostorg/filesystem/pull/15">pull request #15</a>
140 from Sebastian Redl. Also fixes
141 <a href="https://svn.boost.org/trac/boost/ticket/7506">#7506</a>, <i><code>unique_path</code> Fails on Windows for Temporary User
143 <li>Fix bug in <i><code>file_status</code></i> and <i><code>
144 recursive_directory_iterator</code></i>: C++ turns an explicit constructor
145 with all arguments except first defaulted into non-explicit single argument
147 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/10591">#10591</a>, <i>
148 boost::filesystem does not build on iOS 8</i>, by applying a patch submitted
149 by Daniel Seither.</li>
150 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/9454">#9454</a>, <i>
151 Boost Filesystem [library build] not compiling when
152 BOOST_FILESYSTEM_NO_DEPRECATED is defined</i>, by applying a patch submitted
154 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/11447">#11447</a>, <i>
155 __OpenBSD__ macro name misspelled</i>, by applying a patch submitted by Jasper
156 Lievisse Adriaanse.</li>
158 <p>Fix <a href="https://svn.boost.org/trac/boost/ticket/11288">#11288</a>, <i>
159 <font face="Arial">A patch to avoid redundant string allocations</font></i>,
160 by applying a patch submitted by Yevhen Ivannikov.</li>
161 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/11175">#11175</a>,
162 out-of-date documentation causing users to incorrectly expect that the library
163 could be used with exceptions disabled.</li>
164 <li>Resolve <a href="https://svn.boost.org/trac/boost/ticket/11175">#11166</a>
165 by mitigating (i.e. reducing the likelihood of) a possible external file
166 system race in <code>remove()</code>.</li>
168 <p>Fix <a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a>,
169 <i><code>create_directories</code> returns false if the path ends with a slash</i>.
170 Also fix related issues if path contains <i>dot</i> or <i>dot-dot</i>
171 elements, and added test cases to the test suite.</li>
173 <p>Reference docs editorial cleanups: Use same style sheet as the
174 rest of the documentation. Tweak tab font size. Fix excessively long lines in
175 tables, synopsis.</li>
176 <li>Resolve <a href="https://svn.boost.org/trac/boost/ticket/10766">
177 #10766</a>, <i>parent_path() with redundant separator returns wrong value</i>,
178 by adding examples and notes to the reference documentation to show why the
179 returned value is in fact correct, and to provide rationale for that behavior.
180 See <a href="reference.html#path-iterators">[path.itr]</a>, and
181 <a href="reference.html#path-decomposition">[path.decompose]</a> <code>
182 parent_path()</code> and <code>filename()</code> sections of the reference
184 <li>Minor other fixes, including pull requests from Jonathan Wakely and Marcel
186 <li>Closed several tickets as duplicates or otherwise resolved by the
188 <li><a href="https://svn.boost.org/trac/boost/ticket/7607">#7607</a>, <i>path
189 should not infer an invisible "." at the end of a path that ends with a slash;
190 </i><a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a>,
191 <a href="https://svn.boost.org/trac/boost/ticket/10766">#10766</a></li>
192 <li><a href="https://svn.boost.org/trac/boost/ticket/11061">#11061</a>,
193 <a href="https://svn.boost.org/trac/boost/ticket/11062">#11062</a>, <i>
194 impossible to traverse the path of the reverse iterator</i>, is effectively
195 resolved by the addition of the class <code>path</code> reverse iteration
196 feature. The reference documentation has also been updated with
197 <a href="reference.html#path-iterators">a note</a> warning about the
198 limitations of class <code>path</code> iterators.</li>
206 <li>Update the Tutorial:<ul>
207 <li>Use C++11 in the example programs to improve clarity.</li>
208 <li>Update the example source code show to match the actual example source
209 code in the cpp files.</li>
210 <li>Rerun all the examples and update the output shown in the tutorial
212 <li>Fix spacing and other HTML presentation issues.</li>
215 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/11491">#11491</a>, <i>
216 <code>temp_directory_path()</code> doesn't return valid temp path on Android</i>.</li>
221 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/6124">#6124</a>,
222 <a href="https://svn.boost.org/trac/boost/ticket/6779">#6779</a>, and
223 <a href="https://svn.boost.org/trac/boost/ticket/10038">#10038</a>. Cannot
224 pass a BOOST_SCOPED_ENUM to a compiled function because it will result in an
225 undefined reference if the library is compiled with -std=c++0x but the use is
226 compiled in C++03 mode, or visa versa.</li>
227 <li>Rewrite Windows implementation of <code>temp_directory_path()</code> to (1) avoid
228 <code>GetTempPath()</code> failure if path length > 130 (ticket #5300) and (2) provide a
229 more sensible sequence of directories than provided by <code>GetTempPath()</code>, per
230 boost list discussion "[filesystem] temp_directory_path() behavior on
231 Windows". The new sequence is:<ol>
232 <li><i><code>%TMP%</code></i></li>
233 <li><i><code>%TEMP%</code></i></li>
234 <li><code><i>%LOCALAPPDATA%</i>/Temp</code></li>
235 <li><code><i>%USERPROFILE%</i>/Temp</code></li>
236 <li><code><i>GetWindowsDirectoryW()</i>/Temp</code></li>
243 <li>Rework class <code>path</code> locale and codecvt implementation for increased reliability.
244 This change was SVN revision 83021, which should have gone into 1.56.0 but
245 unfortunately the merge didn't happen until too late.</li>
246 <li>Fix tickets <a href="https://svn.boost.org/trac/boost/ticket/8930">#8930</a>, <a href="https://svn.boost.org/trac/boost/ticket/9054">#9054</a>,
247 <a href="https://svn.boost.org/trac/boost/ticket/9214">#9219</a>,
248 <a href="https://svn.boost.org/trac/boost/ticket/10228">#10228</a>, and
249 <a href="https://svn.boost.org/trac/boost/ticket/10641">#10641</a>, all
250 related to locales and codecvt facets.</li>
251 <li>The net effect of the above changes and fixes should be to eliminate
252 spurious "locale::facet::_S_create_c_locale name not valid" errors on Linux
253 and other non-BSD POSIX-like systems. The error will continue to occur, as it
254 should, when a path encoding conversion char-to-wchar_t or wchar_t-to-char is
255 attempted in an environment without a valid C locale (for example, if the LANG
256 environment variable is invalid or not defined).</li>
257 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/6124">#6124</a>,
258 <a href="https://svn.boost.org/trac/boost/ticket/6779">#6779</a>, and
259 <a href="https://svn.boost.org/trac/boost/ticket/10038">#10038</a> - an
260 undefined reference that occurred when the library was compiled for C++03 but
261 the using program was compiled for C++11, or vice versa. The private library
262 interface has been changed to use a plain-old C++03 enum. This is the fix
263 suggested by Andy in 6779.</li>
264 <li>The Windows implementation now treats NTFS directory junctions (also known
265 as junctions, also known as mount points) as symlinks. This has the effect of
266 treating directory junctions as directories, and thus supporting all
267 operations suitable for directories. This resolves
268 <a href="https://svn.boost.org/trac/boost/ticket/9016">#9016</a>. Directory
269 junctions are very similar to symlinks, but may have performance or other
270 advantages in some situations. They can be created from the command line with
271 "<code>mklink /j link target</code>". There is no plan for Boost.Filesystem to
272 be able to create them directly other than by calling <code>std::system()</code>.</li>
277 <li>Reorganize <code>recursive_directory_iterator::increment</code>, adding an
278 invariant that progress is always made, even if an error is reported by
279 exception or error_code. Add a manually executed test, <code>
280 test/issues/recurse_dir_iter_5403.cpp</code>. Adjust regular regression tests
281 as needed. Thanks to Claudio Bley for the
282 <a href="https://github.com/boostorg/filesystem/pull/4">pull request</a> - the
283 change was incorporated into the reorganized code. Fixes
284 <a href="https://svn.boost.org/trac/boost/ticket/5403">#5403</a> and
285 <a href="https://svn.boost.org/trac/boost/ticket/6821">#6821</a>.</li>
286 <li>Fix <code>canonical()</code> to treat parent of root as root. (Christian
287 Hammerl) Fixes <a href="https://svn.boost.org/trac/boost/ticket/9683">#9683</a>
288 and <a href="https://svn.boost.org/trac/boost/ticket/10187">#10187</a>.</li>
289 <li>Added missing test for <code>__sun</code> macro which is defined on
290 Solaris 10. (Chris Stylianou)</li>
291 <li>Minor fixes and code cleanup.</li>
292 <li>Update IDE projects to Visual Studio 2013.</li>
293 <li>Remove unused <code>const char colon</code> to clear clang warning. (J?gen
295 <li>Add BOOST_NOEXCEPT to <code>class filesystem_error</code>.</li>
296 <li>Change <code>perms::all_all</code> and <code>perms::perms_mask</code> to
297 absolute values to quiet intellisense warnings, and conform to C++11.</li>
302 <li>Reimplement <code>path::codecvt()</code> and <code>path::imbue()</code>
303 with portable code that is intended to be much more robust and maintainable. A
304 section on <a href="reference.html#path-Usage">path usage concerns</a> has
305 been added to the reference documentation describing several concerns that
306 arise in the context of multithreading and <code>path::codecvt()</code>.</li>
311 <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/7239">#7239</a>, <i>Stack
312 overflow when calling <code>create_directories(":D")</code></i>. The reported
313 problem was a symptom of an internal bug that caused <code>path::filename()</code>
314 and <code>path::parent_path()</code> to fail on Windows for <code>path(":")</code>,
315 and that in turn caused other functions that depend on <code>filename()</code>
316 or <code>parent_path()</code> to fail, such as <code>create_directories()</code>.</li>
321 <li>Add begin() and end() non-member functions for directory_iterator and
322 recursive_directory_iterator so that C++11 range-based for statements work.
323 Suggested by feature requests
324 <a href="https://svn.boost.org/trac/boost/ticket/5896">#5896</a> and
325 <a href="https://svn.boost.org/trac/boost/ticket/6521">#6521</a>, using the
326 <a href="https://svn.boost.org/trac/boost/ticket/5896">#5896</a> approach.</li>
327 <li>Add range_begin() and range_end() non-member functions for directory_iterator and
328 recursive_directory_iterator so that
329 <a href="http://www.boost.org/libs/foreach/">BOOST_FOREACH</a> works.</li>
330 <li>Fix a Linux fchmodat problem affecting symlink permissions reported during
331 discussion of <a href="https://svn.boost.org/trac/boost/ticket/6659">#6659</a>.</li>
332 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/6659">#6659</a> and
333 <a href="https://svn.boost.org/trac/boost/ticket/7051">#7051</a>, <i>fchmodat
334 supported only on Solaris 11</i>. Fix for both Sun and GCC compilers. </li>
339 <li>Remove Filesystem Version 2 from the distribution. Version 3 is now the
340 only distributed version. Those still using V2 are urged to migrate to V3 as
341 soon as possible.</li>
342 <li>Add <code>constexpr value_type preferred_separator</code> to class path.</li>
343 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5118">#5118</a>, <i>
344 <code>replace_extension</code> doesn't work as specified in documentation</i>. The
345 documentation, implementation, and test cases have all had fixes applied. The
346 documentation had failed to mention that any existing extension is removed.
347 The behavior for simple cases has been reverted to the Version 2 behavior, but
348 with corrections so that complex replacements now work. Two test cases from
349 #5118 have been added.</li>
350 <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/3737">#3737</a>,
351 <i>Boost.Filesystem does not compile on Windows Mobile</i>. On Windows, <sys/stat.h>
352 is no longer included.</li>
353 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/4065">#4065</a>,
354 <i>Boost Filesystem lexicographic path comparison inconsistent</i>. This required
355 multiple source code bug fixes and code cleanup, correcting problems not
356 related to lexicographical issues.</li>
357 <li>Add class path member function <code>compare</code> for consistency with
359 <li>Tighten BOOST_FILESYSTEM_DYN_LINK and BOOST_FILESYSTEM_STATIC_LINK logic
360 in filesystem/config.hpp so that one or the other is always defined, and both
361 being defined is a #error.</li>
362 <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6690">#6690</a> and
363 <a href="http://svn.boost.org/trac/boost/ticket/6737">#6737</a>, resolving
364 static linking related problems with VC++ 8 through 11. Note that this fix may
365 reintroduce codecvt thread safety problems
366 <a href="http://svn.boost.org/trac/boost/ticket/4889">#4889</a>,
367 <a href="http://svn.boost.org/trac/boost/ticket/6320">#6320</a>, for these
368 compilers if static linking is used.</li>
369 <li>Add path::operator+= and concat functions to tack on things like suffixes
370 or numbers. Suggested by Ed Smith-Rowland and others.</li>
371 <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6809">#6809</a>,
372 <i>Implementation of filesystem::rename() method for MS Windows is wrong</i>, by
373 adding MOVEFILE_COPY_ALLOWED to deal with renames across drives, volumes, file
374 systems. Fix has no effect on non-Windows systems.</li>
375 <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6819">#6819</a>, A path operand with a source that was a one character array was
376 treated as empty, even if it wasn't empty. Such arrays can occur in unions or
377 in code using C variable length array idioms.</li>
378 <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6932">#6932</a>,
379 <i>create_directories throws exception even if error_code is specified</i>.</li>
384 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/3714">#3714</a>,
385 Added test cases and fixes for class path errors when assignment or append
386 used self or portion of self as source. </li>
387 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/4889">#4889</a>,
388 <a href="https://svn.boost.org/trac/boost/ticket/6320">#6320</a>, <i>Locale codecvt_facet not thread safe on Windows</i>. Move
389 Windows, Mac OS X, locale and codecvt facet back to namespace scope. POSIX
390 except OS X uses local static initialization (IE lazy) to ensure exceptions
391 are catchable if environmental variables are misconfigured and to avoid use of
392 locale("") if not actually used.</li>
393 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5652">#5652</a>,
394 <i>recursive_directory_iterator fails on cyclic symbolic links</i>. Thanks to Daniel Aarno for the patch.</li>
395 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5653">#5653</a>,
396 <i>recursive_directory_iterator(error_code) can still throw filesystem_error</i>.</li>
397 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5900">#5900</a>, <i>directory_iterator
398 access violation on Windows if error is thrown</i>. Thanks to Andreas Eckleder for the patch.</li>
399 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5900#comment:2">#5900
400 comment 2</a>, a bug in director_iterator construction with error_code argument that
401 caused increment to be called without the ec argument being passed.</li>
402 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5900">#5989</a> by cleaning up test suite path_test.cpp code even
403 though the ticket itself was not a defect, and clarifying docs; iteration over a path yields
405 <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5592">#5592</a>, <i>Change Windows codecvt processing from CP_THREAD_ACP to CP_ACP</i>.</li>
406 <li>Operations function fixes for PGI compiler, thanks to Noel Belcourt.</li>
407 <li>Relax permissions test to reflect reality, particularly on the Sandia test
413 <li>Added operational function <a href="reference.html#canonical">canonical()</a>,
414 suggested by David Svoboda, who also provided pseudo-code.</li>
415 <li>Added <a href="reference.html#hash_value">hash_value()</a> function for
416 paths. (Daniel James)</li>
417 <li>Fix path inserter problem (<a href="https://svn.boost.org/trac/boost/ticket/5764">#5764</a>)
418 reported for QNX6.3.2 host (gcc-3.3.5)</li>
419 <li>Fix problem of locale("") exception being thrown before main() starts on
420 poorly configured (e.g. LANG="bad name") POSIX systems. Resolves the most
421 serious aspect of tickets
422 <a href="https://svn.boost.org/trac/boost/ticket/4688">#4688</a>,
423 <a href="https://svn.boost.org/trac/boost/ticket/5100">#5100</a>,
424 <a href="https://svn.boost.org/trac/boost/ticket/5289">#5289</a>.</li>
429 <li>Program file_status.cpp added (V3). See boost-root/libs/filesystem/v3/example.
430 Useful both as an example and to explore how Boost.Filesystem treats various
431 status errors. Run "bjam" (NOT "bjam install") in the example directory
432 to install in example/bin.</li>
438 <li>Fix fstream problem for STLPort masquerading as Dinkumware (<a href="https://svn.boost.org/trac/boost/ticket/5217">#5217</a>).</li>
443 <li>Version 3 of the library is now the default.</li>
444 <li>IBM vacpp: Workaround for compiler bug affecting iterator_facade. (<a href="https://svn.boost.org/trac/boost/ticket/4912">#4912</a>)</li>
445 <li>Verify, clarify, document that <boost/config/user.hpp> can be used to
446 specify BOOST_FILESYSTEM_VERSION. (<a href="https://svn.boost.org/trac/boost/ticket/4891">#4891</a>)</li>
447 <li>Replaced C-style assert with BOOST_ASSERT.</li>
448 <li>Undeprecated unique_path(). Instead, add a note mentioning the workaround
449 for lack of thread safety and possible change to cwd. unique_path() is just
450 too convenient to deprecate!</li>
451 <li>Cleared several GCC warnings.</li>
452 <li>Changed V2 code to use BOOST_THROW_EXCEPTION.</li>
453 <li>Windows: Fix status() to report non-symlink reparse point correctly.</li>
454 <li>Add <code>symlink_option</code> to <code>recursive_directory_iterator</code>,
455 allowing control over recursion into directory symlinks. Note that the default
456 is changed to not recurse into directory symlinks.</li>
457 <li><a href="reference.html">Reference</a> documentation cleanup, including
458 fixing missing and broken links, and adding missing functions.</li>
459 <li>Miscellaneous implementation code cleanup. </li>
463 <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->07 August, 2017<!--webbot bot="Timestamp" endspan i-checksum="34770" --></p>
464 <p>© Copyright Beman Dawes, 2011</p>
465 <p> Use, modification, and distribution are subject to the Boost Software
466 License, Version 1.0. See <a href="http://www.boost.org/LICENSE_1_0.txt">
467 www.boost.org/LICENSE_1_0.txt</a></p>