Hi, thank you for the quick answer.
for early exiting e.g. a BGL Dijkstra algorithm you can throw your local type as a signal and than catch this on the call site.
Here are two early exit visitors I found useful:
The first one is for the classical One-To-Many routing, the second one for One-To-Many routing scenario.
The call site could look similar to:
try { dijkstra_shortest_paths_no_color_map(graph, source, predecessor_map(predMap) .weight_map(weightMap) .disance_map(distanceMap) .visitor(stopOnTarget<Graph>{target})); } catch (const stopSearchSignal&) { }
So, throwing an exception is the way to go. I kinda dislike having exceptions in my normal execution, but well. It's even in the FAQ which i should have read before posting the question. Sorry for the noise.
If you need more advanced features e.g. you want to do a bidirectional Dijkstra aborting in "the middle", follow this thread:
Very interesting. Bidirectional search was next on my list, but i was more interested in doing it in parallel instead of concurrently. Still a nice solution. I have to do some reading up on coroutines. Regards, Frank