boostorg / graph

Boost.org graph module
http://boost.org/libs/graph
317 stars 204 forks source link

tiernan_all_cycles doesn't work out of the box with adjacency_list #182

Open wonkoRT opened 5 years ago

wonkoRT commented 5 years ago

there might be a bug in boost/graph/tiernan_all_cycles.hpp which comes from tiernan_all_cycles.hpp, line 161: BOOST_CONCEPT_ASSERT(( VertexIndexGraphConcept<Graph> )); and then in graph_concepts.hpp on line 469/70

// This is relaxed
renumber_vertex_indices(g);

One way to make it compile is to just provide the renumber_vertex_indices the concept checks for, but since tiernan_all_cycles doesn't directly or indirectly call renumber_vertex_indices the check on line 161 in tiernan_all_cycles.hpp can also be commented out. I don't understand why this concept check is used. Maybe it's fine and the "workaround" is the right way to deal with it?

Here's a godbolt.

anadon commented 5 years ago

I'll get to reading everything either today or tomorrow.

anadon commented 5 years ago

Actually, reading this, I kind of want to reimplement the whole thing.

Naios commented 4 years ago

I ran into the same issue, renumber_vertex_indices overall is only used internally in classes and probably should be removed from the concept as // This is relaxed indicates.