2009-08-14 85 views

回答

15

phoenix::bind就像lambda::bind這個函數返回一個表達式模板,記錄它必須調用給定的函數。這些設計分別與phoenix和lambda一起工作。因此,它們包含更多的東西。就像,他們返回的類型會重載所有可能的操作符,以便他們各自的操作可以被記錄並在以後執行。

boost::bind只是一個活頁夾。它將綁定該函數,並返回一個具有函數調用操作符重載的類型,而不是更多。

+2

值得注意的是,在[Phoenix 3.0](http://www.boost.org/doc/libs/1_47_0/libs/phoenix/doc/html/index.html)(以boost 1.47發佈)中,phoenix :: bind'是[compatible](http://www.boost.org/doc/libs/1_47_0/libs/phoenix/doc/html/phoenix/modules/bind/compatibility_with_boost_bind.html)'boost :: bind' 。在這裏記住litb的迴應,這意味着你可以在之前使用'boost :: bind'的地方使用'phoenix :: bind',但我認爲它不能用於其他方式(你不能使用'lambda'中的boost :: bind',並期望它像'phoenix :: bind'一樣工作)。 – 2011-11-30 23:21:05

相關問題