【发布时间】:2019-11-06 20:15:18
【问题描述】:
我正在使用 Boost 1.70.0 和 vs-2017。使用depth_first_search 时,我观察到使用msvc 编译器编译时访问者中的finish_edge 函数不会被调用。使用 gcc (8.3) 可以正确调用 finish_edge 函数
示例代码:
struct DfsVisitor : public boost::default_dfs_visitor
{
template <class Graph>
void
finish_edge(typename Graph::edge_descriptor ed, const Graph& g)
{
std::cout << "Finish edge " << boost::source(ed, g) << "->" << boost::target(ed, g) << std::endl;
}
};
DfsVisitor dfs;
boost::depth_first_search(g, boost::visitor(dfs)); // g is graph, adjacency_list
【问题讨论】:
-
您是否有一个 SSCCE,我们可以实际运行它来观察行为?这样可以节省很多时间
标签: c++ visual-studio boost visual-studio-2017 boost-graph