是否有标准的新配对?

时间:2012-01-30 23:53:12

标签: c++ std-pair

我想要pair<A,B>*make_pair(a,b)会给我pair<A,B>(注意这对不是指针)。是否有标准的方法来制作一对指针?我尝试在两个单词之后和之间添加新单词,但它似乎不存在。

1 个答案:

答案 0 :(得分:2)

没有。你可以自己动手:

template<typename X, typename Y>
std::pair<typename std::decay<X>::type, typename std::decay<Y>::type>*
heap_pair(X&& x, Y&& y) {
  typedef typename std::decay<X>::type decayed_X;
  typedef typename std::decay<Y>::type decayed_Y;
  return new std::pair<decayed_X, decayed_Y>(
    std::forward<X>(x),
    std::forward<Y>(y)
  );
}

但您可能希望为其添加分配器自定义。