Matthew Barr 8c2e033540 cmake: test reverse_graph instead of using version
It seems that some distros are using a patched Boost 1.62.0 which means our
workaround in reverse_graph has a conflict. Add a CMake test to see if we
need to use the patched reverse_graph.
2017-01-20 09:26:34 +11:00

28 lines
645 B
C++

#ifndef REVERSE_GRAPH_PATCHED_H_
#define REVERSE_GRAPH_PATCHED_H_
#include <boost/version.hpp>
#include <boost/graph/reverse_graph.hpp>
#if defined(BOOST_REVGRAPH_PATCH)
// Boost 1.62.0 does not implement degree() in reverse_graph which is required
// by BidirectionalGraph, so add it.
namespace boost {
template <class BidirectionalGraph, class GRef>
inline typename graph_traits<BidirectionalGraph>::degree_size_type
degree(const typename graph_traits<BidirectionalGraph>::vertex_descriptor u,
const reverse_graph<BidirectionalGraph,GRef>& g)
{
return degree(u, g.m_g);
}
} // namespace boost
#endif // Boost 1.62.0
#endif