I'm trying to implement the IncidenceGraph concept for an non-BGL undirected graph like datastructure. Following the boost documentation the target function used with edges from out_edges(u,g) must give vertices != u.
Can somebody please explain me why this requirement is in BGL! I think it can make the adaption very difficult as it requieres to artificially orientate undirected edges for each call to out_edges. Any help would be much appreciated!
I'm not entirely sure. The constraint makes sense if you're building graphs that don't allow loops, but otherwise, it would not seem to be necessary. There's a small possibility that the requirement actually stemmed from an adjacency_list bug that caused problems when deleting loop edges, but the bug has since been fixed. I would say: do what you think is right for your own graph structure. Andrew Sutton andrew.n.sutton@gmail.com