我有一行代碼,我包含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