You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bump min C++ standard for LLFIO to C++ 17. Before anyone complains,
this has been advertised for a couple of years now in compiler
diagnostics that support for non-17 `<filesystem>` was deprecated
and would be going away. It has now gone away. Please use a LLFIO
from before year 2025 if you want `<filesystem>` or
`<memory_resource>` polyfill support.
indented_message(STATUS"NOTE: Standard <filesystem> not found in the current compiler configuration (try forcing C++ 17 or later?), attempting to figure out what <experimental/filesystem> linker flags to use for this STL ...")
indented_message(FATAL_ERROR "FATAL: After probing multiple configurations, still cannot compile and link a <filesystem> or <experimental/filesystem> based program! Please adjust the configuration and/or install missing dependencies.")
indented_message(FATAL_ERROR "FATAL: C++ 17 <filesystem> is not available, use a LLFIO from before year 2025 if you want legacy <filesystem> polyfill support")
Copy file name to clipboardexpand all lines: Readme.md
+3-6
Original file line number
Diff line number
Diff line change
@@ -21,15 +21,12 @@ as Intel Optane.
21
21
22
22
It is a complete rewrite after a Boost peer review in August 2015. LLFIO is the
23
23
reference implementation for these C++ standardisations:
24
-
-`llfio::path_view` is expected to enter the C++ 26 standard ([P1030](https://wg21.link/p1030)).
25
-
-`llfio::file_handle` and `llfio::mapped_file_handle` are on track for entering the C++ 26 standard ([P1883](https://wg21.link/p1883)).
24
+
-`llfio::path_view` is expected to enter the C++ 29 standard ([P1030](https://wg21.link/p1030)).
26
25
27
26
Other characteristics:
28
-
- Portable to any conforming C++ 14 compiler with a working Filesystem TS in its STL.
29
-
- Note that VS2019 16.3 and libc++ 11 dropped support for Filesystem in C++ 14, so for those LLFIO's cmake forces on C++ 17.
27
+
- Portable to any conforming C++ 17 compiler with a working Filesystem in its STL.
30
28
- Fully clean with C++ 20.
31
-
- Will make use of any Coroutines, Concepts, Span, Byte etc if you have them, otherwise swaps in C++ 14 compatible alternatives.
32
-
- NOTE that Ubuntu 18.04's libstdc++ 9 does not currently provide symbols for `<codecvt>` if you are building in C++ 20, so linking LLFIO programs on libstdc++ on that Linux if in C++ 20 will fail. Either use a different STL, manually rebuild libstdc++, or use C++ 17.
29
+
- Will make use of any Coroutines, Concepts, Span, Byte etc if you have them, otherwise swaps in C++ 17 compatible alternatives.
33
30
- Aims to support Microsoft Windows, Linux, Android, iOS, Mac OS and FreeBSD.
34
31
- Best effort to support older kernels up to their EOL (as of July 2020: >= Windows 8.1, >= Linux 2.6.32 (RHEL EOL), >= Mac OS 10.13, >= FreeBSD 11).
35
32
- Original error code is always preserved, even down to the original NT kernel error code if a NT kernel API was used.
"WARNING: LLFIO is using the experimental Filesystem TS instead of the standard Filesystem, there are many corner case surprises in the former! Support for the Experimental Filesystem TS is expected to be deprecated at some point, and C++ 17 shall become the minimum required for LLFIO.")
294
-
#else
295
-
#warning WARNING: LLFIO is using the experimental Filesystem TS instead of the standard Filesystem, there are many corner case surprises in the former! Support for the Experimental Filesystem TS is expected to be deprecated at some point, and C++ 17 shall become the minimum required for LLFIO.
0 commit comments