2010-11-20 49 views

回答

11

Boost庫中使其達到標準的項目當然會包含在命名空間std中。但是,我認爲他們的Boost對應者不會有任何改變:如果我們以bind爲例,編譯C++ 0x的人將使用std::bind,而編譯C++ 03的人將繼續使用boost::bind

我可能是錯的,但是從我的理解,這是概念由它製成的標準,而不是確切規格 Boost庫。據我所知,boost::bind可能會保持不斷髮展,並在某些時候提供與std::bind不同的東西(地獄,我還沒有閱讀C++ 0x標準,所以我沒有答案,但std::bind可能已經是不同於boost::bind!)。

命名空間碰撞在這裏沒有問題:每個庫站在它自己的命名空間中,並且可以很好地在同一個C++ 0x項目中使用std::bindboost::bind

+0

不要忘記'std :: tr1' – 2010-11-20 08:57:31

+0

好的。我現在明白了。這基本上意味着該標準將在2010年的某個日期包含特定增強庫的一個版本,而庫本身將繼續作爲增強項目的一部分發展。看起來,這種提升的標準化部分將主要由圖書館開發人員使用,而開發獨立軟件的人將繼續使用boost.org的升級代碼。 – Michael 2010-11-20 11:09:53

+4

不!該標準不包含特定增強庫的任何部分。事實上,這從來沒有發生過(之前曾發生過)。中央comitee(雙關語意圖)通常會接管一些提出的概念,但是闡述了它自己的規範(與原來的規範很少有所不同)。標準庫的具體實現是完全不同的東西,儘管... – 2010-11-20 12:17:13