我在Boost Graph Library中有一个图表和一个模板函数heapV
。我将模板类声明为heapV <Graph::vertex_descriptor , Graph> lookAt;
,因此typename T应为vertex_descriptor
。
我想要调用一个函数int heapV<T,U>::getIndex(T &key)
。我正在尝试myHeapV.getIndex(*vItr)
,但收到错误
无法从unsigned int转换为unsigned int&amp;。
vItr
是BGL的邻接迭代器,邻接迭代器指针返回unsigned int。
如果有人需要,我会提供更多详细信息。
答案 0 :(得分:1)
getIndex需要一个左值参数。
所以你应该(谁知道,我不知道getIndex
函数确实如此),使用(临时)变量:
unsigned int key = *vItr;
int index = myHeapV.getIndex(key); // lvalue reference
如果代码是在MSVC上编译的,那是因为它使用了非标准的编译器扩展