typedef std容器?

时间:2009-02-18 18:10:18

标签: c++ templates typedef

我想做

typedef deque type; //error, use of class template requires template argument list
type<int> container_;

但是这个错误阻止了我。我该怎么做?

5 个答案:

答案 0 :(得分:15)

你不能(直到C ++ 0x)。但它可以用以下方式模拟:

template<typename T>
struct ContainerOf
{
  typedef std::deque<T> type;
};

用作:

ContainerOf<int>::type container_;

答案 1 :(得分:8)

deque不是一种类型。它是一个模板,用于在给定参数时生成类型。

 deque<int> 

是一种类型,所以你可以做

 typedef deque<int> container_

答案 2 :(得分:2)

你没有,C ++还不支持这种typedef。你当然可以说;

typedef std::deque <int> IntDeque;

答案 3 :(得分:1)

您遇到了错误,因为您错过了在deque中指定int。

但请注意:Template typedef是可接受的C ++ 0x功能。尝试使用最新的g ++

答案 4 :(得分:0)

你可以这样做:

#define type deque

但这有几个缺点。