Add the missing degree() in Boost 1.62

This is a workaround that fixes issue #39
This commit is contained in:
Matthew Barr 2016-10-20 09:49:10 +11:00
parent d2e5089dc3
commit 21b44fcbc3
2 changed files with 29 additions and 2 deletions

View File

@ -0,0 +1,27 @@
#ifndef REVERSE_GRAPH_PATCHED_H_
#define REVERSE_GRAPH_PATCHED_H_
#include <boost/version.hpp>
#include <boost/graph/reverse_graph.hpp>
#if (BOOST_VERSION == 106200)
// 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

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015, Intel Corporation * Copyright (c) 2015-16, Intel Corporation
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
@ -39,7 +39,7 @@
#include "util/ue2_containers.h" #include "util/ue2_containers.h"
#include <boost-patched/graph/dominator_tree.hpp> // locally patched version #include <boost-patched/graph/dominator_tree.hpp> // locally patched version
#include <boost/graph/reverse_graph.hpp> #include <boost-patched/graph/reverse_graph.hpp>
using namespace std; using namespace std;
using boost::make_assoc_property_map; using boost::make_assoc_property_map;