我想要一个pair<A,B>*
. make_pair(a,b)
会给我一个pair<A,B>
(注意这对不是指针)。有没有一种标准的方法来制作一对指针?我尝试在这两个词之后和之间添加新词,但它似乎不存在。
user34537
问问题
1384 次
1 回答
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)
);
}
但是您可能希望为其添加分配器自定义。
于 2012-01-30T23:58:00.730 回答