Updated readme.

This commit is contained in:
Steffen Schuemann 2020-12-26 13:54:57 +01:00
parent 1edf4a3339
commit ff56073075

View File

@ -66,6 +66,9 @@ where full C++17 is available, it doesn't try to be a "better"
`std::filesystem`, just a drop-in if you can't use it (with the exception `std::filesystem`, just a drop-in if you can't use it (with the exception
of the UTF-8 preference on Windows). of the UTF-8 preference on Windows).
This implementation is following the ["UTF-8 Everywhere" philosophy](https://utf8everywhere.org/) in that all
`std::string` instances will be interpreted the same as `std::u8string` encoding
wise and as being in UTF-8. The `std::u16string` will be seen as UTF-16 and
Unit tests are currently run with: Unit tests are currently run with:
@ -194,7 +197,7 @@ including one of two additional wrapper headers. These allow to include
a forwarded version in most places (`ghc/fs_fwd.hpp`) while hiding the a forwarded version in most places (`ghc/fs_fwd.hpp`) while hiding the
implementation details in a single cpp that includes `ghc/fs_impl.hpp` to implementation details in a single cpp that includes `ghc/fs_impl.hpp` to
implement the needed code. That way system includes are only visible from implement the needed code. That way system includes are only visible from
inside the cpp, all other places are clean. inside the cpp, all other places are clean.
Be aware, that it is currently not supported to hide the implementation Be aware, that it is currently not supported to hide the implementation
into a Windows-DLL, as a DLL interface with C++ standard templates in interfaces into a Windows-DLL, as a DLL interface with C++ standard templates in interfaces
@ -360,7 +363,7 @@ error is also advocated by the newer paper
[WG21 P1164R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1164r0.pdf), the revison [WG21 P1164R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1164r0.pdf), the revison
P1161R1 was agreed upon on Kona 2019 meeting [see merge](https://github.com/cplusplus/draft/issues/2703) P1161R1 was agreed upon on Kona 2019 meeting [see merge](https://github.com/cplusplus/draft/issues/2703)
and GCC by now switched to following its proposal and GCC by now switched to following its proposal
([GCC #86910](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86910)). ([GCC #86910](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86910)).
### Not Implemented on C++ before C++17 ### Not Implemented on C++ before C++17
@ -379,6 +382,16 @@ ghc::filesystem under C++17.
### Differences in API ### Differences in API
To not depend on any external third party libraries and still stay portable and
compact, this implementation is following the ["UTF-8 Everywhere" philosophy](https://utf8everywhere.org/) in that all
`std::string` instances will be interpreted the same as `std::u8string` encoding
wise and as being in UTF-8. The `std::u16string` will be seen as UTF-16 and `std::u32string` will be
seen as unicode codepoints. Depending on the size of `std::wstring` characters, it will handle
`std::wstring` as being UTF-16 (e.g. Windows) or `char32_t` unicode codepoints
(currently all other platforms).
#### Differences of Specific Interfaces
```cpp ```cpp
filesystem::path::string_type filesystem::path::string_type
filesystem::path::value_type filesystem::path::value_type
@ -427,7 +440,7 @@ differences between `ghc::filesystem` and those. I try to update the wiki page
from time to time. from time to time.
Any additional observations are welcome! Any additional observations are welcome!
#### fs.path ([ref](https://en.cppreference.com/w/cpp/filesystem/path)) #### fs.path ([ref](https://en.cppreference.com/w/cpp/filesystem/path))
As the complete inner mechanics of this implementation `fs::path` are working As the complete inner mechanics of this implementation `fs::path` are working
@ -511,13 +524,13 @@ to the expected behavior.
* Refactoring for [#78](https://github.com/gulrak/filesystem/issues/78), the dynamic * Refactoring for [#78](https://github.com/gulrak/filesystem/issues/78), the dynamic
switching helper includes are now using `__MAC_OS_X_VERSION_MIN_REQUIRED` to switching helper includes are now using `__MAC_OS_X_VERSION_MIN_REQUIRED` to
ensure that `std::filesystem` is only selected on macOS if the deployment target is ensure that `std::filesystem` is only selected on macOS if the deployment target is
at least Catalina. at least Catalina.
* Bugfix for [#77](https://github.com/gulrak/filesystem/issues/77), the `directory_iterator` * Bugfix for [#77](https://github.com/gulrak/filesystem/issues/77), the `directory_iterator`
and the `recursive_directory_iterator` had an issue with the `skip_permission_denied` and the `recursive_directory_iterator` had an issue with the `skip_permission_denied`
option, that leads to the inability to skip SIP protected folders on macOS. option, that leads to the inability to skip SIP protected folders on macOS.
* Enhancement for [#76](https://github.com/gulrak/filesystem/issues/76), `_MSVC_LANG` is * Enhancement for [#76](https://github.com/gulrak/filesystem/issues/76), `_MSVC_LANG` is
now used when available, additionally to `__cplusplus`, in the helping headers to now used when available, additionally to `__cplusplus`, in the helping headers to
allow them to work even when `/Zc:__cplusplus` is not used. allow them to work even when `/Zc:__cplusplus` is not used.
* Bugfix for [#75](https://github.com/gulrak/filesystem/issues/75), NTFS reparse points * Bugfix for [#75](https://github.com/gulrak/filesystem/issues/75), NTFS reparse points
to mapped volumes where handled incorrect, leading to `false` on `fs::exists` or to mapped volumes where handled incorrect, leading to `false` on `fs::exists` or
not-found-errors on `fs::status`. Namespaced paths are not filtered anymore. not-found-errors on `fs::status`. Namespaced paths are not filtered anymore.
@ -558,7 +571,7 @@ to the expected behavior.
error handling are not available in this mode, thanks for the PR (this resolves error handling are not available in this mode, thanks for the PR (this resolves
[#60](https://github.com/gulrak/filesystem/issues/60) and [#60](https://github.com/gulrak/filesystem/issues/60) and
[#43](https://github.com/gulrak/filesystem/issues/43)) [#43](https://github.com/gulrak/filesystem/issues/43))
### [v1.3.2](https://github.com/gulrak/filesystem/releases/tag/v1.3.2) ### [v1.3.2](https://github.com/gulrak/filesystem/releases/tag/v1.3.2)
* Bugfix for [#58](https://github.com/gulrak/filesystem/issues/58), on MinGW the * Bugfix for [#58](https://github.com/gulrak/filesystem/issues/58), on MinGW the
@ -579,7 +592,7 @@ to the expected behavior.
part of the CI infrastucture with the service of Cirrus CI. part of the CI infrastucture with the service of Cirrus CI.
* Pull request [#50](https://github.com/gulrak/filesystem/pull/50), adaptive cast to * Pull request [#50](https://github.com/gulrak/filesystem/pull/50), adaptive cast to
`timespec` fields to avoid warnings. `timespec` fields to avoid warnings.
### [v1.3.0](https://github.com/gulrak/filesystem/releases/tag/v1.3.0) ### [v1.3.0](https://github.com/gulrak/filesystem/releases/tag/v1.3.0)
* **Important: `ghc::filesystem` is re-licensed from BSD-3-Clause to MIT license.** (see * **Important: `ghc::filesystem` is re-licensed from BSD-3-Clause to MIT license.** (see
@ -737,7 +750,7 @@ to the expected behavior.
`ghc::filesystem` declarations (`fs_fwd.hpp`) and to wrap the `ghc::filesystem` declarations (`fs_fwd.hpp`) and to wrap the
implementation into a single cpp (`fs_impl.hpp`) implementation into a single cpp (`fs_impl.hpp`)
* The `std::basic_string_view` variants of the `fs::path` api are * The `std::basic_string_view` variants of the `fs::path` api are
now supported when compiling with C++17. now supported when compiling with C++17.
* Added CI integration for Travis-CI and Appveyor. * Added CI integration for Travis-CI and Appveyor.
* Fixed MinGW compilation issues. * Fixed MinGW compilation issues.
* Added long filename support for Windows. * Added long filename support for Windows.