Question

Je voulais faire

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

Mais cette erreur me empêche. Comment puis-je faire?

Était-ce utile?

La solution

Vous ne pouvez pas (jusqu'à C ++ 0x). Mais il pourrait faire des émules avec:

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

utilisé comme:

ContainerOf<int>::type container_;

Autres conseils

deque n'est pas un type. Il est un modèle, utilisé pour générer un type donné en argument.

 deque<int> 

est un type, vous pouvez donc faire

 typedef deque<int> container_

Vous ne, C ++ ne supporte pas encore ce genre de typedef. Vous pouvez bien sûr dire;

typedef std::deque <int> IntDeque;

Vous avez touché une erreur parce que vous avez manqué de spécifier int dans deque.

Mais notez que: Modèle typedef 's sont un acceptés C ++ 0x fonction. Essayez avec la dernière g ++

La façon dont vous pouvez faire est:

#define type deque

Mais qui vient avec plusieurs inconvénients.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top