我想做
typedef deque type; //error, use of class template requires template argument list
type<int> container_;
但是这个错误阻止了我。我该怎么做?
答案 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
但这有几个缺点。