conteneurs typedef std?
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?
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