删除对 boost::filesystem::current_path() 的依赖

Remove dependency on boost::filesystem::current_path()

我有一行代码,其中包含我想删除的 boost-filesystem 1.64 库,因此我可以完全删除对 Boost 的依赖我的程序。

行本身:

std::string currentPath = boost::filesystem::current_path().string();

我正在寻找可以为我提供 std::string currentPath 的替代品,它可以在 Windows 和 Linux 上与编译器 Visual C++ 一起工作和 LLVM。如果可能,也适用于 GCC。

可能是我看得不够仔细,但我还在学习C++,实际上对标准库了解不多。所以我问这个问题。

目前的解决方案是依赖:

std::experimental::filesystem::current_path();

我建议你拿 source code from Boost,adapt/decrustify 继续前进。它只不过是 getcwd() (POSIX) 和 GetCurrentDirectoryW (Windows) 的包装器。当 std::filesystem::current_path() 广泛可用时,您可以稍后将其丢弃。

如果您想知道 BOOST_POSIX_API 是如何设置的(在方法中引用),请查看此代码段:

# if defined(_WIN32) || defined(__CYGWIN__) // Windows default, including MinGW and Cygwin
#   define BOOST_WINDOWS_API
# else
#   define BOOST_POSIX_API 
# endif