我想要使用
std::make_pair
,并结合std::bind2nd
,以便获得一个一元函数对象,我可以将其与std::transform
等函数一起使用。请注意,我现在正在使用的是: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++03 问题 :-) - Frerich Raabe