Я пытаюсь построить шаблонную функцию. Внутри используются шаблонные классы, и я хотел бы передать тип шаблона функции этим классам. Итак, у меня есть:
template <class T>
T find_bottleneck (ListGraph &g, CrossRefMap<ListGraph, Edge, T> &weight, Node &s, Node &t) {
// Check if theres a single edge left
if (countEdges(g) == 1) {
CrossRefMap<ListGraph, Edge, T>::ValueIt itr = weight.beginValue();
return *itr;
}
Однако это не удается, ссылаясь на
lemon_graph.cpp: In function ‘T find_bottleneck(lemon::ListGraph&, lemon::CrossRefMap<lemon::ListGraph, lemon::ListGraphBase::Edge, T>&, Node&, Node&)’:
lemon_graph.cpp:20: error: expected ‘;’ before ‘itr’
lemon_graph.cpp:21: error: ‘itr’ was not declared in this scope
Я попытался воссоздать это, используя простой пример функции, которая генерирует векторы на основе переданного ей типа и скомпилирована нормально, поэтому я не уверен, в чем здесь проблема.