que je voulais fairetypedef std conteneurs?
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 cela?
que je voulais fairetypedef std conteneurs?
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 cela?
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_;
Vous n'avez pas, C++ ne supporte pas encore ce type de typedef. Vous pouvez bien sûr dire;
typedef std::deque <int> IntDeque;
Deque n'est pas un type. C'est un template, utilisé pour générer un type quand on lui donne un argument.
deque<int>
est un type, vous pouvez donc faire
typedef deque<int> container_
Vous avez touché une erreur parce que vous avez manqué de spécifier int dans deque.
Mais notez que: Template typedef sont une fonctionnalité acceptée C++ 0x. Essayez avec la dernière g ++
La façon dont vous pouvez faire est:
#define type deque
Mais qui vient avec plusieurs inconvénients.
oui, il tournerait des choses comme « typename » dans « dequename » (je reconnais que « type » est un exemple, mais encore c'est un gros problème). Je dirais éviter cela à tout prix. –