我想使用std::make_pair
可用於例如。 std::bind2nd
,這樣我就可以得到一個一元函數對象,我可以使用它。 std::transform
。如何使std :: make_pair與std :: bind *一起使用?
現在,我使用
template <typename T, typename U>
struct pair_creator : std::binary_function<T, U, std::pair<T, U> >
{
std::pair<T, U> operator()(T arg1, U arg2) const {
return std::make_pair(arg1, arg2);
}
};
// ...
std::transform(start1, end2, start2, std::bind2nd(pair_creator<int, bool>(), true));
但我不知道 - 有更簡單的方法,使std::make_pair
(或潛在的任何其他二進制功能)使用與粘合劑除非通過寫像pair_creator
小包裝類手?
我需要一個C++ 03解決方案(由於一些不明確的原因,stackoverflow總是在保存帖子時將我的c++0x標籤重寫爲c++11 ...)。
C++ 0x是C++ 11的工作名稱,直到它在幾個月前完成。 –
@Mike:啊,說得通。我不知何故認爲'C++ 0x'標籤也應該符合我的C++ 03問題:-) –