Oh, sorry! I've forgotten to post the call. Following is the call and the instanziation of the map (With VertexList=vecS this will work):
// Get the index map typedef property_map
::type IndexMap; IndexMap im = get(&VertexContainer::m_idVertex, graphIn); // Create a predecessor map over the indices. BGLVertexDescriptor startDescriptor; idMapperIn.mapIDs(this->getStartID(), startDescriptor); std::vector<BGLVertexDescriptor> p(num_vertices(graphIn)); p[this->getStartID()] = startDescriptor;
breadth_first_search( graphIn , startDescriptor , vertex_index_map(im).visitor(make_bfs_visitor(record_predecessors(&p[0], boost::on_tree_edge()))) );
idMapperIn is a local class to map IDs to a valid vertex descriptor.
I have no idea... It still looks like the compiler is picking the wrong template. What compiler are you using? Can you upgrade to a new version of Boost? Andrew Sutton andrew.n.sutton@gmail.com