我有一行代码,我包含boost-filesystem 1.64库,我很想删除,所以我可以删除依赖Boost完全从我的程序。删除依赖boost :: filesystem :: current_path()
行本身:
std::string currentPath = boost::filesystem::current_path().string();
我在寻找一个替代品,给了我一个std::string currentPath
,与编译器的Visual C++和LLVM在Windows和Linux的作品。如果可能的话也用于GCC。
这可能是真的,我还没有看够难,但我仍然在学习C++并且实际上对标准库没有太多了解。所以我在问这个问题。
目前的解决办法是依靠:
std::experimental::filesystem::current_path();
你应该考虑升级到C++ 17,所以你可以使用['标准:: filesystem :: current_path()'](http://en.cppreference.com/w/cpp/experimental/fs/current_path),它被添加到标准库中。 – tambre
@tambre:C++ 17尚不存在,许多编译器不完全支持FileSystem API的C++ 17版本。这可能在一两年内可行。 –
依赖并不是一件坏事。 Boost是相当模块化的,所以你不会仅仅为了获得文件系统功能而包括整个boost。他们可能会做得更好,确保它可以在Windows和Linux上工作,而不是另一种选择,并且很容易迁移到C++ 17。 – wally