无法将unsigned int转换为unsigned int& (Boost邻接迭代器指针)

时间:2015-12-01 21:11:50

标签: c++ pointers boost types iterator

我在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。

如果有人需要,我会提供更多详细信息。

1 个答案:

答案 0 :(得分:1)

getIndex需要一个左值参数。

所以你应该(谁知道,我不知道getIndex函数确实如此),使用(临时)变量:

unsigned int key = *vItr;
int index = myHeapV.getIndex(key); // lvalue reference
  

如果代码是在MSVC上编译的,那是因为它使用了非标准的编译器扩展