Boost logo

Boost Users :

From: Jeff Holle (jeff.holle_at_[hidden])
Date: 2004-08-20 15:53:19


I'm using gcc v3.4.1 and boost_CVS captured on Tue Jun 29 05:25:17 EDT 2004.
I'm developing a boost.graph application that must deal with multiple
graphs.

The following typedefs describe how its using boost.graph:
  typedef
boost::adjacency_list<boost::vecS,boost::vecS,boost::bidirectionalS> GraphT;
  typedef boost::shared_ptr<GraphT> GraphPtr;
  typedef boost::graph_traits <GraphT>::vertex_descriptor Vertex;
  typedef boost::graph_traits <GraphT>::edge_descriptor Edge;

In addition, I have various maps that must act as a "bridge" between
these graphs.
I'm using the following typedefs as keys in such maps:
  typedef std::pair<GraphPtr,Vertex> ExternalVertex;
  typedef std::pair<GraphPtr,Edge> ExternalEdge;

I've used ExternalVertex successfully in two different maps.
Now I'm having trouble populating the first map that uses ExternalEdge.
The compiler warnings that I'm getting sugguest that Edge does have an
"operator<" method. Specifically its:
  error: no match for 'operator<' in '__x->std::pair<GraphPtr,
Edge>::second < __y->std::pair<GraphPtr, Edge>::second'

I'm wondering why Edge is different from Vertex.
As you can see, as I've defined GraphT, both edge and vertex properties
should be no_property.

Any guidance that assists me to, at worst case, write a Compare operator
for my "map<ExternalEdge,...>" containers would be appreciated.


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