문제

나는하고 싶었다

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

그러나 그것은 몇 가지 단점이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top