删除对 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
我有一行代码,其中包含我想删除的 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