解决方案是抛出已知类型的异常,然后在调用端捕获它。从FAQ中可以得到以下信息:“我怎样能够从BFS等算法中提前退出呢?” “创建一个访问者(visitor),当你想要终止搜索时,抛出一个异常,然后将你对breadth_first_search的调用放在适当的try/catch块内。然而,这种使用异常的方式可能会被很多程序员认为是一种误用,但是,我们经过了深思熟虑,决定采用异常作为提前退出的首选方式。请参见boost邮件讨论以获取更多详细信息。”