Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2021-11-12 12:30:29

On 11/12/21 04:15, Marshall Clow via Boost wrote:
> The master branch is is now open for post-beta merges, but only as described in the Post-Beta Merge Policy.
> See < <>>
> Reminder: The master branch closes for the release on Wednesday, December 1st.
> Full calendar here: <>

I would like to merge Boost.Filesystem develop to master:

Break down by commits:

In v4, path appends (operator/, operator/=, path::append) now recognize
root name and root directory in the appended paths and behave closer to
C++17. v3 path appends are unchanged.

absolute() reworked to account for the v4 path appends change. It also
fixes incorrect behavior for v3, when the input path was already
absolute - the old implementation used to add a root name from the base
path in this case.

Updated canonical/weakly_canonical to also accommodate changed v4 path

This completes v4 path appends change by adding a trailing separator
when the appended path is empty, like C++17.

Update v4 path::lexically_normal to avoid appending the trailing dot
filename when the original path ends with a separator. This complements
the earlier change in v4 path::filename and path::iterator (which is
already in master) to omit the trailing dot and also matches C++17.

Also, for v3 and v4 the directory separators in the root name are now
converted to preferred separators. This matches C++17 and improves
behavior wrt. UNC paths on Windows.

Fixes potential linking errors in case if the compiler is set to
preserve unused inline functions. This was reported in

For clarity, Boost.Filesystem v3 is currently the default and v4 is the
new (experimental) version that aims for better compatibility with
C++17. All changes have passed the CI tests.

Boost list run by bdawes at, gregod at, cpdaniel at, john at