Lorsque vous utilisez une classe de conteneur telle que vector
, list
, etc., je peux utiliser le type des éléments en écrivant vector<type>::value_type
.Utilisation de types définis dans les arguments de modèle
Cependant, le code suivant
template<class container>
void foo(container& c)
{
typedef container::value_type elementtype;
elementtype b;
}
échoue avec l'erreur "expected initializer before ‘elementtype’
". Est-il possible de déduire le type d'élément lorsque le type de conteneur est donné en tant qu'argument modèle ou dois-je donner le type d'élément en tant qu'argument de modèle supplémentaire?