|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2003-07-11 16:25:44
I have updated Boost.Graph to use the new iterator adaptors, except
for the LEDA and standford graph support stuff: I lack the neccessary
headers to test it.
Some of the bugs uncovered by CWPro8 are serious, and some don't even
have a resolution that I can see. For example:
* vector_as_graph.hpp - ADL problems. This should be fairly
obvious if you're familiar with ADL: on a conforming compiler,
the unqualified calls used in Boost.Graph (e.g. vertices(g))
won't find the definitions of vertices() in namespace boost when
g comes from namespace std::. One solution I can come up with is
to have the library call
vertices_<G>::get(g)
whose default implementation is simply
return vertices(g)
and then specialize
vertices_<std::vector<T,A> >
to do what we want. The alternative is to insert
using boost::vertices;
etc., before each unqualified call. Ick. Probably a better
approach is simply to provide a vector adaptor class template:
template<class V>
struct vector_graph
{
vector_graph(V const& v) : m_v(v) {}
V const& m_v;
...
};
template <class V>
vector_graph<V> make_vector_graph(V const& v);
* Lots of missing std:: qualifications. I added them, but older
compilers may break now. Please seek appropriate workarounds.
* This one I'd just like someone to check to make sure I've done
the right thing:
===================================================================
RCS file: /cvsroot/boost/boost/boost/graph/isomorphism.hpp,v
retrieving revision 1.26
diff -u -r1.26 isomorphism.hpp
--- boost/graph/isomorphism.hpp 14 Aug 2002 21:17:59 -0000 1.26
+++ boost/graph/isomorphism.hpp 11 Jul 2003 21:10:48 -0000
@@ -186,8 +186,14 @@
f[kp1] = u;
in_S[u] = true;
num_edges_on_k = 0;
- if (match(iter, dfs_num_k + 1));
- return true;
+
+ if (match(iter, dfs_num_k + 1))
+#if 0
+ // dwa 2003/7/11 -- this *HAS* to be a bug!
+ ;
+#endif
+ return true;
+
in_S[u] = false;
}
}
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk