我通常使用boost來實現一些功能,特別是boost :: filesystem(1.58.0)。從boost到std :: experimental以及C++ 17
此外我使用std :: experimental到string_view(我的編譯器沒有將它作爲標準包含在內 - g ++ 5.4.0 20160609)。
因爲我使用的提升功能是apropoved我想準備C++ 17。
Fortunaly我用我的代碼如下命令:
using namespace boost::filesystem; //the only exeption is to boost::filesystem::remove
using namespace std::experimental;
如果我更換增長線,以「using namespace std::experimental::filesystem;
」我會得到完全相同的行爲與變化罷了在我的代碼實現提升?
後,我得到了官方的gcc編譯器使用這些功能已經包括作爲標準所有我需要做的是: 一)改變「std::experimental::filesystem;
」到「std::filesystem
」 B)刪掉就行了「using namespace std::experimental;
」
並獲得相同的行爲與更改沒有更多的在我的代碼?
C++ 17中包含哪些其他增強功能,也可以像上面描述的那樣輕鬆替換?
雖然一些新功能基於Boost庫或受Boost庫啓發,但Boost庫可能沒有一對一翻譯到標準庫中。有了這個說法,我懷疑會有什麼大的或常見的變化(如果有的話),所以你應該能夠像Boost文件系統庫一樣使用'std :: filesystem'。 –
Boost文件系統和Boost線程是我知道的唯一嘗試跟蹤標準提議的兩個線程。這會立即反映在它們在公共接口中有許多重大更改(Boost Filesystem v2/v3,並且Boost Thread使用了十幾個重要的有條件編譯的功能選擇宏) – sehe