mirror of
https://github.com/boostorg/filesystem.git
synced 2026-01-19 04:12:09 +00:00
b224703125ff51afeab82db469db48f615f7d1ff
C++23 std::string_view added a range constructor that is constrained with a concept check that in particular checks if the range is contiguous. In that check, the range iterator type is checked. Since fs::path members now test whether the source argument is convertible to std::string_view, that concept check is performed whenever the overload resolution or SFINAE check is performed. This caused a problem if the check was performed before fs::path::iterator is defined, since the result of the check formally changes when the iterator gets defined. To work around this, move any fs::path non-template member functions that call to other members (including constructors) which may involve overload resolution or SFINAE checks that might require testing whether std::string_view is constructible from fs::path out of fs::path definition and past the fs::path::iterator definition. This was also reported to gcc team: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106808
Boost.Filesystem
Boost.Filesystem, part of collection of the Boost C++ Libraries, provides facilities to manipulate files and directories, and the paths that identify them.
Directories
- doc - Documentation sources
- include - Interface headers of Boost.Filesystem
- src - Compilable source files of Boost.Filesystem
- test - Boost.Filesystem unit tests
- example - Boost.Filesystem usage examples
More information
- Documentation
- Report bugs. Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
- Submit your patches as pull requests against develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
Build status
| Branch | GitHub Actions | AppVeyor | Test Matrix | Dependencies |
|---|---|---|---|---|
master |
||||
develop |
License
Distributed under the Boost Software License, Version 1.0.
Description
Languages
C++
98.4%
CMake
1.5%