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 <https://github.com/boostorg/wiki/wiki/Releases%3A-Beta-Merge-Policy <https://github.com/boostorg/wiki/wiki/Releases%3A-Beta-Merge-Policy>>
>
> Reminder: The master branch closes for the release on Wednesday, December 1st.
> Full calendar here: https://www.boost.org/development/ <https://www.boost.org/development/>

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

https://github.com/boostorg/filesystem/compare/master...develop

Break down by commits:

https://github.com/boostorg/filesystem/commit/d13461be0f8fafe2d63b87141bcd1416f740c7fd
https://github.com/boostorg/filesystem/commit/ecbab750b2c49b3d5805dbd3f4c285fc2a7ca941
https://github.com/boostorg/filesystem/commit/0d413a5e4fbdb6c7c1ac9b54ae5298c9967a082b

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.

https://github.com/boostorg/filesystem/commit/cc763cb48efea3dac897752d403d5bc229d78b59

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.

https://github.com/boostorg/filesystem/commit/37bfbbb376caac04e222af65baa1ed850207e38c

Updated canonical/weakly_canonical to also accommodate changed v4 path
appends.

https://github.com/boostorg/filesystem/commit/0aee13c162ccfe88fa3415791bd312b0be480dbf

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

https://github.com/boostorg/filesystem/commit/0307f58a8b2176f6709d3d7df33924464ee4961e

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.

https://github.com/boostorg/filesystem/commit/7fc42097cf7977fb4d5b908c4a3090500a492533

Fixes potential linking errors in case if the compiler is set to
preserve unused inline functions. This was reported in
https://github.com/boostorg/filesystem/issues/215.

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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk