在boost::bind
的對話中,有人指出std::bind1st
存在於C++ 03中,但它「幾乎不可用」。爲什麼std :: bind1st被認爲是「幾乎不可用」?
我找不到任何堅實的東西來支持這件事。
The boost::bind
documentation說:
的boost ::綁定是的 標準功能的std :: bind1st和 的std :: bind2nd的推廣。它支持任意 函數對象,功能,功能 指針和成員函數 指針,並且能夠任意 參數綁定到特定值或路線 輸入參數爲任意 位置。 綁定沒有對函數對象放置任何 要求; 特別是,它並不需要 result_type的,first_argument_type和 second_argument_type標準 的typedef。
或許表明這些限制做適用於std::bind1st
。
除了對參數的數目明顯的限制,什麼是的boost::bind
到std::bind1st
/std::bind2nd
優勢?在C++ 03中,std::bind1st
「幾乎不可用」的說法有什麼好處嗎?
請注意,'ptr_fun'解決了第一個問題,通過爲您提供一個包含指定函數指針的可調整二進制函數。儘管如此,並沒有解決其他問題。調用'ptr_fun'很容易,記得稍微難一些;-) –