【发布时间】:2009-02-18 18:10:17
【问题描述】:
我想做
typedef deque type; //error, use of class template requires template argument list
type<int> container_;
但是那个错误阻止了我。我该怎么做?
【问题讨论】:
我想做
typedef deque type; //error, use of class template requires template argument list
type<int> container_;
但是那个错误阻止了我。我该怎么做?
【问题讨论】:
你不能(直到 C++0x)。但它可以被模仿:
template<typename T>
struct ContainerOf
{
typedef std::deque<T> type;
};
用作:
ContainerOf<int>::type container_;
【讨论】:
deque 不是类型。它是一个模板,用于在给定参数时生成类型。
deque<int>
是一种类型,所以你可以这样做
typedef deque<int> container_
【讨论】:
你不知道,C++ 还不支持这种类型定义。你当然可以说;
typedef std::deque <int> IntDeque;
【讨论】:
您遇到了一个错误,因为您没有在 deque 中指定 int。
但请注意:Template typedef 是公认的 C++0x 功能。尝试使用最新的 g++
【讨论】:
你可以这样做:
#define type deque
但这有几个缺点。
【讨论】: