[graph,python] 1.31.0 failures on MSVC6

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. I keep thinking I must be making a mistake, but someone else has also reported Python build problems with the latest release on MSVC6. Am I missing something, or are boost.graph and boost.Python no longer functional on this compiler? http://boost.sourceforge.net/regression-logs/cs-win32-links.html#graph-adjac... graph - adjacency_matrix_test - msvc Compiler output: adjacency_matrix_test.cpp C:\boost\site\boost/graph/detail/adjacency_list.hpp(1055) : error C2244: 'bidirectional_graph_helper_with_property<Config>::remove_edge' : unable to resolve function overload C:\boost\site\boost/graph/detail/adjacency_list.hpp(1057) : error C2954: template definitions cannot nest Compiling python/src/object/inheritance.cpp gives the same error, as well as errors in boost/mem_fn.hpp at lines 315 and 320 (complete errors posted recently on the Python C++-sig list). -- Raoul Gough. export LESS='-X'

Raoul Gough <RaoulGough@yahoo.co.uk> 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'
participants (1)
-
Raoul Gough