При использовании класса контейнера, например vector
, list
и т. Д., Я могу использовать тип элементов, написав vector<type>::value_type
.
Однако следующий код
template<class container>
void foo(container& c)
{
typedef container::value_type elementtype;
elementtype b;
}
завершается с ошибкой «expected initializer before ‘elementtype’
».
Можно ли вывести тип элемента, когда тип контейнера задан в качестве аргумента шаблона, или я должен указать тип элемента в качестве дополнительного аргумента шаблона?