This is weird...
I'm still using BGL from Boost 1_29_0 (which may be an issue?). Anyway, I've
got a graph as so:
typedef boost::property > >
forest_vertex_property_maps_declaration_t;
typedef boost::adjacency_list forest_graph_t;
I've done a lot with this class, including all kinds of edge traversal. Now
suddenly I have a case where boost::out_edges seems to be returning an
invalid iterator range. I'm absolutely certain the vertex descriptor is
correct, boost::out_degree returns the expected number of out edges, however
I fault inside my access loop because the iterator has gone out of range....
typedef boost::graph_traits::vertex_descriptor
forest_vertex_descriptor_t;
typedef boost::graph_traits::vertex_descriptor
forest_vertex_descriptor_t;
typedef boost::graph_traits::edges_size_type
forest_edges_size_t;
typedef boost::graph_traits::out_edge_iterator
forest_edge_out_iterator_t;
forest_edge_out_iterator_t edgeoutiterBegin, edgeoutiterEnd,
edgeoutiterCurrent;
boost::tie(edgeoutiterBegin, edgeoutiterEnd) =
boost::out_edges(v/*forest_vertex_descriptor_t*/,g/*forest_graph_t);
for (edgeoutiterCurrent = edgeoutiterBegin;
edgeoutiterCurrent != edgeoutiterEnd ;
++edgeoutiterCurrent)
{
// works fine through the expected out edges - faults because the loop fails
to terminate
forest_vertex_descriptor_t vertexTarget = boost::target(*edgeoutiterCurrent,
g);
} // end for
Any suggestions would be greatly appreciated. I'm really scratching my head
because I've done this exact operation in several other places in the
algorithm and it works just fine....
TIA - Chris