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

The following typedefs describe how its using boost.graph:
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, kalb at, bjorn.karlsson at, gregod at, wekempf at