문제
나는하고 싶었다
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를 지원하지 않습니다. 물론 말할 수 있습니다.
typedef std::deque <int> IntDeque;
Deque에서 int를 지정하는 것을 놓쳤으므로 오류에 도달했습니다.
그러나 주목하십시오 : 템플릿 typedef허용 된 C ++ 0X 기능입니다. 최신 G ++로 시도하십시오
이 작업을 수행 할 수있는 방법은 다음과 같습니다.
#define type deque
그러나 그것은 몇 가지 단점이 있습니다.
제휴하지 않습니다 StackOverflow