Boost logo

Boost Users :

From: Matthias Kronenberger (yg-boost-users_at_[hidden])
Date: 2002-08-26 08:33:25


I'm using a undirected grap with hash_setS as the Edge List container and
vecS as the Vertex List Container

I'm using MSVC60 with SP5

as soon as i'm trying to use remove_edge(vertex1,vertex2,graph) i get the
following error message.
I dont understand the error message. It means, that my edgelist is a
std::vector allthough i compile with boost::hash_setS.

Could it be, that some BGL config file detects MSVC and concludes, that hash
sets are not available in the MSVC stl??

d:\matthias\programmieren\boost\boost\graph\detail\adjacency_list.hpp(665):
error C2039: 'find': Ist kein Element von
'vector<boost::detail::sei_<unsigned int,list<boost::list_edge<unsigned
int,boost::property<enum boost::edge_weight_t,float,boost::
no_property>>>::iter,boost::property<enum
boost::edge_weight_t,float,boost::no_property>>,allocator<boost::detail::sei
_<unsigned int,list<boost::list_edge<unsigned int,boost::property<enum
boost::edge_weight_t,float,boost::no_property>>>::iter,boost
::property<enum boost::edge_weight_t,float,boost::no_property>>>>'

find is not an element of vector

the corresponding code fragment is.
  template <class Graph, class EdgeList, class Vertex>
      inline void
      remove_edge_and_property(Graph& g, EdgeList& el, Vertex v,
                               boost::disallow_parallel_edge_tag)
      {
        typedef typename EdgeList::value_type StoredEdge;
        typename EdgeList::iterator i = el.find(StoredEdge(v)), end =
el.end();
        if (i != end) {
          g.m_edges.erase((*i).get_iter());
          el.erase(i);
        }
      }


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net