我想做一些跨平台的、可选的使用std::filesystem
和使用的代码,如下所示:
#ifdef __has_include
#if __has_include(<version>)
#include <version>
#endif
#endif
#ifdef __cpp_lib_filesystem
#include <filesystem>
// Use of std::filesystem::path
#endif
然后我可以通过-std=c++11
或-std=c++17
有或没有对文件系统的支持。
这几乎在任何地方都可以正常工作,但在没有明确目标平台级别集的最近的 OSX 上。这似乎默认为某些较旧的 OSX 并引发编译错误:
错误:“路径”不可用:在 macOS 10.15 中引入
...
Applications/Xcode_11.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/filesystem:739: 24:
注意:“路径”已在此处明确标记为不可用
那么如果这样的代码编译,我应该如何在 OSX 上处理这个而不依赖于配置检查呢?功能检测宏不是__cpp_lib_filesystem
意味着不需要这样的配置步骤吗?