我想使用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问题:-) –