Boost logo

Boost :

From: Raoul Gough (RaoulGough_at_[hidden])
Date: 2004-02-06 15:45:57


Raoul Gough <RaoulGough_at_[hidden]> writes:

> I note from the current regression test results at
> http://boost.sourceforge.net/regression-logs/cs-win32.html that
> adjacency_matrix_test is a "Fail" on MSVC++6, along with all but one
> of the other graph library tests. This seems to have the knock-on
> effect of breaking one of the Boost.Python modules, inheritance.cpp.

Compile errors have been confirmed by various people. The fix to make
inheritance.cpp work turns out to be very simple (patch below). Looks
like the problem was introduced in revision 1.112.2.1 (21 Jan 2004).

----8<---- Patch for 1.112.2.3 (Version_1_31_0) -----8<----

Index: adjacency_list.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/graph/detail/adjacency_list.hpp,v
retrieving revision 1.112.2.3
diff -w -d -u -r1.112.2.3 adjacency_list.hpp
--- adjacency_list.hpp 2 Feb 2004 14:25:51 -0000 1.112.2.3
+++ adjacency_list.hpp 6 Feb 2004 20:29:13 -0000
@@ -1019,8 +1019,14 @@
       // Placement of these overloaded remove_edge() functions
       // inside the class avoids a VC++ bug.
       
+ // O(E/V) or O(log(E/V))
       void
- remove_edge(typename Config::edge_descriptor e);
+ remove_edge(typename Config::edge_descriptor e)
+ {
+ typedef typename Config::graph_type graph_type;
+ graph_type& g = static_cast<graph_type&>(*this);
+ boost::remove_edge(source(e, g), target(e, g), *this);
+ }
 
       inline void
       remove_edge(typename Config::out_edge_iterator iter)
@@ -1045,15 +1051,6 @@
     }
 
     // O(E/V) or O(log(E/V))
- template <class Config>
- inline void
- bidirectional_graph_helper_with_property<Config>::remove_edge(typename Config::edge_descriptor e)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(*this);
- boost::remove_edge(source(e, g), target(e, g), *this);
- }
- // O(E/V) or O(log(E/V))
     template <class EdgeOrIter, class Config>
     inline void
     remove_edge(EdgeOrIter e,

-- 
Raoul Gough.
export LESS='-X'

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk