Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / filesystem / doc / deprecated.html
1 <html>
2
3 <head>
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 Deprecated Features</title>
9 <link href="styles.css" rel="stylesheet">
10 </head>
11
12 <body>
13
14 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
15   <tr>
16     <td width="277">
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>
19     <td align="middle">
20     <font size="7">Filesystem Deprecated Features</font>
21     </td>
22   </tr>
23 </table>
24
25 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse"
26  bordercolor="#111111" bgcolor="#D7EEFF" width="100%">
27   <tr>
28     <td><a href="index.htm">Home</a> &nbsp;&nbsp;
29     <a href="tutorial.html">Tutorial</a> &nbsp;&nbsp;
30     <a href="reference.html">Reference</a> &nbsp;&nbsp;
31     <a href="faq.htm">FAQ</a> &nbsp;&nbsp;
32     <a href="release_history.html">Releases</a> &nbsp;&nbsp;
33     <a href="portability_guide.htm">Portability</a> &nbsp;&nbsp;
34     <a href="v3.html">V3 Intro</a> &nbsp;&nbsp;
35     <a href="v3_design.html">V3 Design</a> &nbsp;&nbsp;
36     <a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
37     <a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
38     </td>
39 </table>
40
41 <h2><a name="Deprecated-names">Deprecated names</a> and features</h2>
42 <p style="font-size: 10pt">As the library evolves over time, names sometimes
43 change or old features are removed to make way for new features. To ease transition, Boost.Filesystem deprecates
44 the old names and features, but by default continues to provide many of them.
45 The deprecated names and other workarounds can be suppressed by defining macro <code>
46 BOOST_FILESYSTEM_NO_DEPRECATED</code>, and this is recommended for all new code.</p>
47 <p style="font-size: 10pt">In the table, &#10004; indicates a synonym or other
48 workaround is provided unless <code>
49 BOOST_FILESYSTEM_NO_DEPRECATED</code> is defined.</p>
50 <table border="1" cellpadding="5" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111">
51   <tr>
52     <td style="font-size: 10pt" valign="top">
53     <b><i>Component or location</i></b></td>
54     <td style="font-size: 10pt" valign="top">
55     <p style="font-size: 10pt"><b><i>Old name, now deprecated</i></b></td>
56     <td style="font-size: 10pt" valign="top">
57     &#10004;</td>
58     <td style="font-size: 10pt" valign="top">
59     <p style="font-size: 10pt"><b><i>New name</i></b></td>
60   </tr>
61   <tr>
62     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
63     <td style="font-size: 10pt" valign="top"><code>branch_path()</code></td>
64     <td style="font-size: 10pt" valign="top">&#10004;</td>
65     <td style="font-size: 10pt" valign="top"><code>parent_path()</code></td>
66   </tr>
67   <tr>
68     <td style="font-size: 10pt" valign="top">
69     <code>class path</code></td>
70     <td style="font-size: 10pt" valign="top">
71     <code>canonize()</code></td>
72     <td style="font-size: 10pt" valign="top">
73     &nbsp;</td>
74     <td style="font-size: 10pt" valign="top">
75     <i>Function removed</i></td>
76   </tr>
77   <tr>
78     <td style="font-size: 10pt" valign="top">
79     <code>class path</code></td>
80     <td style="font-size: 10pt" valign="top">
81     <code>default_name_check()</code></td>
82     <td style="font-size: 10pt" valign="top">
83     &#10004;</td>
84     <td style="font-size: 10pt" valign="top">
85     <i>Function removed</i></td>
86   </tr>
87   <tr>
88     <td style="font-size: 10pt" valign="top">
89     <code>class path</code></td>
90     <td style="font-size: 10pt" valign="top">
91     <code>default_name_check(name_check)</code></td>
92     <td style="font-size: 10pt" valign="top">
93     &#10004;</td>
94     <td style="font-size: 10pt" valign="top">
95     <i>Function removed</i></td>
96   </tr>
97   <tr>
98     <td style="font-size: 10pt" valign="top">
99     <code>class path</code></td>
100     <td style="font-size: 10pt" valign="top">
101     <code>default_name_check_writable()</code></td>
102     <td style="font-size: 10pt" valign="top">
103     &#10004;</td>
104     <td style="font-size: 10pt" valign="top">
105     <i>Function removed</i></td>
106   </tr>
107   <tr>
108     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
109     <td style="font-size: 10pt" valign="top"><code>directory_string()</code></td>
110     <td style="font-size: 10pt" valign="top">&#10004;</td>
111     <td style="font-size: 10pt" valign="top"><code>string</code></td>
112   </tr>
113   <tr>
114     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
115     <td style="font-size: 10pt" valign="top"><code>external_directory_string()</code></td>
116     <td style="font-size: 10pt" valign="top">&#10004;</td>
117     <td style="font-size: 10pt" valign="top"><code>native()</code></td>
118   </tr>
119   <tr>
120     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
121     <td style="font-size: 10pt" valign="top"><code>external_file_string()</code></td>
122     <td style="font-size: 10pt" valign="top">&#10004;</td>
123     <td style="font-size: 10pt" valign="top"><code>native()</code></td>
124   </tr>
125   <tr>
126     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
127     <td style="font-size: 10pt" valign="top"><code>file_string()</code></td>
128     <td style="font-size: 10pt" valign="top">&#10004;</td>
129     <td style="font-size: 10pt" valign="top"><code>string()</code></td>
130   </tr>
131   <tr>
132     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
133     <td style="font-size: 10pt" valign="top"><code>has_branch_path()</code></td>
134     <td style="font-size: 10pt" valign="top">&#10004;</td>
135     <td style="font-size: 10pt" valign="top"><code>has_parent_path()</code></td>
136   </tr>
137   <tr>
138     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
139     <td style="font-size: 10pt" valign="top"><code>has_leaf()</code></td>
140     <td style="font-size: 10pt" valign="top">&#10004;</td>
141     <td style="font-size: 10pt" valign="top"><code>has_filename()</code></td>
142   </tr>
143   <tr>
144     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
145     <td style="font-size: 10pt" valign="top"><code>is_complete()</code></td>
146     <td style="font-size: 10pt" valign="top">&#10004;</td>
147     <td style="font-size: 10pt" valign="top"><code>is_absolute()</code></td>
148   </tr>
149   <tr>
150     <td style="font-size: 10pt" valign="top"><code>class path</code></td>
151     <td style="font-size: 10pt" valign="top"><code>leaf()</code></td>
152     <td style="font-size: 10pt" valign="top">&#10004;</td>
153     <td style="font-size: 10pt" valign="top"><code>filename()</code></td>
154   </tr>
155   <tr>
156     <td style="font-size: 10pt" valign="top">
157     <code>class path</code></td>
158     <td style="font-size: 10pt" valign="top">
159     <code>native_directory_string()</code></td>
160     <td style="font-size: 10pt" valign="top">
161     &#10004;</td>
162     <td style="font-size: 10pt" valign="top">
163     <code>string()</code></td>
164   </tr>
165   <tr>
166     <td style="font-size: 10pt" valign="top">
167     <code>class path</code></td>
168     <td style="font-size: 10pt" valign="top">
169     <code>native_file_string()</code></td>
170     <td style="font-size: 10pt" valign="top">
171     &#10004;</td>
172     <td style="font-size: 10pt" valign="top">
173     <code>string()</code></td>
174   </tr>
175   <tr>
176     <td style="font-size: 10pt" valign="top">
177     <code>class path</code></td>
178     <td style="font-size: 10pt" valign="top">
179     <code>normalize()</code></td>
180     <td style="font-size: 10pt" valign="top">
181     &#10004;</td>
182     <td style="font-size: 10pt" valign="top">
183     <i>Function removed</i></td>
184   </tr>
185   <tr>
186     <td style="font-size: 10pt" valign="top">
187     <code>class path</code></td>
188     <td style="font-size: 10pt" valign="top">
189     <code>path(const string_type&amp; str, name_check)</code></td>
190     <td style="font-size: 10pt" valign="top">
191     &#10004;</td>
192     <td style="font-size: 10pt" valign="top">
193     <i>Function removed. Workaround ignores </i><code>name_check</code><i>
194     argument.</i></td>
195   </tr>
196   <tr>
197     <td style="font-size: 10pt" valign="top">
198     <code>class path</code></td>
199     <td style="font-size: 10pt" valign="top">
200     <code>path(const string_type::value_type* s,&nbsp; name_check)</code></td>
201     <td style="font-size: 10pt" valign="top">
202     &#10004;</td>
203     <td style="font-size: 10pt" valign="top">
204     <i>Function removed. Workaround ignores </i><code>name_check</code><i>
205     argument.</i></td>
206   </tr>
207   <tr>
208     <td style="font-size: 10pt" valign="top">
209     <code>class path</code></td>
210     <td style="font-size: 10pt" valign="top">
211     <p style="font-size: 10pt"><code>remove_leaf()</code></td>
212     <td style="font-size: 10pt" valign="top">
213     &#10004;</td>
214     <td style="font-size: 10pt" valign="top">
215     <p style="font-size: 10pt"><code>remove_filename()</code></td>
216   </tr>
217   <tr>
218     <td style="font-size: 10pt" valign="top">
219     <code>path.hpp</code></td>
220     <td style="font-size: 10pt" valign="top">
221     <code>template&lt;class String, class Traits&gt;<br>
222 &nbsp; class basic_path;</code></td>
223     <td style="font-size: 10pt" valign="top">
224     &nbsp;</td>
225     <td style="font-size: 10pt" valign="top">
226     Class template <code>basic_path</code> is replaced by <code>class path</code>.
227     No workaround for an explicitly coded <code>basic_path</code> is provided,
228     but see the next row - <code>path</code>.</td>
229   </tr>
230   <tr>
231     <td style="font-size: 10pt" valign="top">
232     <code>path.hpp</code></td>
233     <td style="font-size: 10pt" valign="top">
234     <code>typedef basic_path&lt;std::string, path_traits&gt; path</code></td>
235     <td style="font-size: 10pt" valign="top">
236     &#10004;</td>
237     <td style="font-size: 10pt" valign="top">
238     <code>class path</code></td>
239   </tr>
240   <tr>
241     <td style="font-size: 10pt" valign="top">
242     <code>path.hpp</code></td>
243     <td style="font-size: 10pt" valign="top">
244     <code>typedef basic_path&lt;std::wstring, wpath_traits&gt; wpath</code></td>
245     <td style="font-size: 10pt" valign="top">
246     &#10004;</td>
247     <td style="font-size: 10pt" valign="top">
248     <i>Removed; use </i><code>class path</code><i> instead. Workaround provides
249     </i><code>typedef path wpath</code></td>
250   </tr>
251   <tr>
252     <td style="font-size: 10pt" valign="top">
253     <code>operations.hpp</code></td>
254     <td style="font-size: 10pt" valign="top">
255     <code>initial_path()</code></td>
256     <td style="font-size: 10pt" valign="top">
257     &#10004;</td>
258     <td style="font-size: 10pt" valign="top">
259     <i>Function removed</i></td>
260   </tr>
261   <tr>
262     <td style="font-size: 10pt" valign="top">
263     <code>operations.hpp</code></td>
264     <td style="font-size: 10pt" valign="top">
265     <p dir="ltr"><code>template &lt;class Path&gt;<br>
266     Path complete(const Path&amp; p,<br>
267 &nbsp;const Path&amp; base=<br>
268 &nbsp;&nbsp; initial_path&lt;Path&gt;())</code></td>
269     <td style="font-size: 10pt" valign="top">
270     &#10004;</td>
271     <td style="font-size: 10pt" valign="top">
272     <p dir="ltr"><code>path absolute(const path&amp; p, const path&amp; base=<br>
273 &nbsp; current_path())</code></td>
274   </tr>
275   <tr>
276     <td style="font-size: 10pt" valign="top">
277     <code>operations.hpp</code></td>
278     <td style="font-size: 10pt" valign="top">
279     <code>is_regular(file_status f)</code></td>
280     <td style="font-size: 10pt" valign="top">
281     &#10004;</td>
282     <td style="font-size: 10pt" valign="top">
283     <p dir="ltr">
284     <code>is_regular_file(file_status f)</code></td>
285   </tr>
286   <tr>
287     <td style="font-size: 10pt" valign="top">
288     <code>operations.hpp</code></td>
289     <td style="font-size: 10pt" valign="top">
290     <code>symbolic_link_exists(const path&amp; ph)</code></td>
291     <td style="font-size: 10pt" valign="top">
292     &nbsp;</td>
293     <td style="font-size: 10pt" valign="top">
294     <i>Function removed</i></td>
295   </tr>
296   <tr>
297     <td style="font-size: 10pt" valign="top">
298     <code>class directory_entry</code></td>
299     <td style="font-size: 10pt" valign="top">
300     <code>filename()</code></td>
301     <td style="font-size: 10pt" valign="top">
302     &#10004;</td>
303     <td style="font-size: 10pt" valign="top">
304     <i>Function removed, use </i><code>path().filename()</code><i> instead.</i></td>
305   </tr>
306   <tr>
307     <td style="font-size: 10pt" valign="top">
308     <code>class directory_entry</code></td>
309     <td style="font-size: 10pt" valign="top">
310     <code>leaf()</code></td>
311     <td style="font-size: 10pt" valign="top">
312     &#10004;</td>
313     <td style="font-size: 10pt" valign="top">
314     <i>Function removed, use </i><code>path().filename()</code><i> instead.</i></td>
315   </tr>
316   <tr>
317     <td style="font-size: 10pt" valign="top">
318     <code>class directory_entry</code></td>
319     <td style="font-size: 10pt" valign="top">
320     <code>string()</code></td>
321     <td style="font-size: 10pt" valign="top">
322     &#10004;</td>
323     <td style="font-size: 10pt" valign="top">
324     <i>Function removed, use </i><code>path().string()</code><i> instead.</i></td>
325   </tr>
326   <tr>
327     <td style="font-size: 10pt" valign="top"><code>class recursive_directory_iterator</code></td>
328     <td style="font-size: 10pt" valign="top"><code>level()</code></td>
329     <td style="font-size: 10pt" valign="top">&#10004;</td>
330     <td style="font-size: 10pt" valign="top"><code>depth()</code></td>
331   </tr>
332   <tr>
333     <td style="font-size: 10pt" valign="top"><code>class recursive_directory_iterator</code></td>
334     <td style="font-size: 10pt" valign="top"><code>no_push_pending()</code></td>
335     <td style="font-size: 10pt" valign="top">&#10004;</td>
336     <td style="font-size: 10pt" valign="top"><code>!recursion_pending()</code></td>
337   </tr>
338   <tr>
339     <td style="font-size: 10pt" valign="top"><code>class recursive_directory_iterator</code></td>
340     <td style="font-size: 10pt" valign="top"><code>no_push()</code></td>
341     <td style="font-size: 10pt" valign="top">&#10004;</td>
342     <td style="font-size: 10pt" valign="top"><code>disable_recursion_pending()</code></td>
343   </tr>
344   <tr>
345     <td style="font-size: 10pt" valign="top"><code>directory.hpp</code></td>
346     <td style="font-size: 10pt" valign="top"><code>enum class symlink_option</code></td>
347     <td style="font-size: 10pt" valign="top">&#10004;</td>
348     <td style="font-size: 10pt" valign="top"><i>Removed; use corresponding values of </i><code>enum class directory_options</code><i> instead.</i></td>
349   </tr>
350   <tr>
351     <td style="font-size: 10pt" valign="top">
352     <code>directory.hpp</code></td>
353     <td style="font-size: 10pt" valign="top">
354     <code>wrecursive_directory_iterator</code> typedef</td>
355     <td style="font-size: 10pt" valign="top">
356     &#10004;</td>
357     <td style="font-size: 10pt" valign="top">
358     <i>Removed; use </i><code>class recursive_directory_iterator</code><i> instead. Workaround provides
359     </i><code>typedef recursive_directory_iterator wrecursive_directory_iterator</code></td>
360   </tr>
361   <tr>
362     <td style="font-size: 10pt" valign="top">
363     <code>operations.hpp</code></td>
364     <td style="font-size: 10pt" valign="top">
365     The header provides <code>filesystem_error</code>, <code>file_status</code>, <code>directory_entry</code>, <code>directory_iterator</code>, <code>recursive_directory_iterator</code> and associated enums and functions.</td>
366     <td style="font-size: 10pt" valign="top">
367     &#10004;</td>
368     <td style="font-size: 10pt" valign="top">
369     <i>These components were moved to separate headers </i><code>exception.hpp</code><i>, </i><code>file_status.hpp</code><i> and </i><code>directory.hpp</code><i>.
370     The workaround is to include the new headers or </i><code>filesystem.hpp</code><i>. The new headers are still included by </i><code>operations.hpp</code><i> if
371     </i><code>BOOST_FILESYSTEM_NO_DEPRECATED</code><i> is not defined.</i></td>
372   </tr>
373   <tr>
374     <td style="font-size: 10pt" valign="top">
375     Macro definitions</td>
376     <td style="font-size: 10pt" valign="top">
377     <code>BOOST_WINDOW_API</code></td>
378     <td style="font-size: 10pt" valign="top">
379     &nbsp;</td>
380     <td style="font-size: 10pt" valign="top">
381     <i>No longer supported; API selection is always automatic.</i></td>
382   </tr>
383   <tr>
384     <td style="font-size: 10pt" valign="top">
385     Macro definitions</td>
386     <td style="font-size: 10pt" valign="top">
387     <code>BOOST_POSIX_API</code></td>
388     <td style="font-size: 10pt" valign="top">
389     &nbsp;</td>
390     <td style="font-size: 10pt" valign="top">
391     <i>No longer supported; API selection is always automatic.</i></td>
392   </tr>
393   <tr>
394     <td style="font-size: 10pt" valign="top">
395     Macro definitions</td>
396     <td style="font-size: 10pt" valign="top">
397     <code>BOOST_WINDOW_PATH</code></td>
398     <td style="font-size: 10pt" valign="top">
399     &nbsp;</td>
400     <td style="font-size: 10pt" valign="top">
401     <i>No longer supported; native path format selection is always automatic.</i></td>
402   </tr>
403   <tr>
404     <td style="font-size: 10pt" valign="top">
405     Macro definitions</td>
406     <td style="font-size: 10pt" valign="top">
407     <code>BOOST_POSIX_PATH</code></td>
408     <td style="font-size: 10pt" valign="top">
409     &nbsp;</td>
410     <td style="font-size: 10pt" valign="top">
411     <i>No longer supported; native path format selection is always automatic.</i></td>
412   </tr>
413 </table>
414
415 <h2>Deprecation rationale</h2>
416 <h3><code>initial_path</code> function</h3>
417 <p dir="ltr">Full implementation of <code>initial_path()</code> would require
418 support from the C++ runtime startup code, and that doesn't seem likely to
419 happen. Depending on the user to call <code>initial_path()</code> at the
420 beginning of <code>main()</code> is too error prone.&nbsp; An equivalent
421 function can trivially be provided by a user.</p>
422
423 <hr>
424 <p>Revised
425 <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->29 December, 2014<!--webbot bot="Timestamp" endspan i-checksum="38652" --></p>
426
427 <p>&copy; Copyright Beman Dawes, 2002-2005, 2010</p>
428 <p> Use, modification, and distribution are subject to the Boost Software
429 License, Version 1.0. See <a href="http://www.boost.org/LICENSE_1_0.txt">
430 www.boost.org/LICENSE_1_0.txt</a></p>
431
432 </body>
433
434 </html>