Boost logo

Boost Users :

Subject: [Boost-users] boost::iterator_property_map causes run-time fatal error in debug mode on VS2008
From: Artyom (sneg.vx_at_[hidden])
Date: 2009-05-18 09:37:03

Dear all,

Noticed some strange behaviour in Debug mode today using
boost::iterator_property_map. Not sure whether this is a bug so decided
to post here.

Here is a how property map is instantiated:

    template< class Graph, class Vertex, class Edge, class
VertexIterator, class EdgeIterator > class PathRecorder
       typedef typename boost::property_map< typename Graph,
boost::vertex_index_t >::type VertexId_PMap;
       typedef boost::iterator_property_map< typename std::vector< Edge
>::iterator, VertexId_PMap, typename Edge, typename Edge & > PredEdgeMap;

       /// relevant members
       std::vector< Edge > edges;
       VertexId_PMap vertex_id;

       PathRecorder( void ) : /*** some instantiations here ***/
predEdgeMap( edges.begin(), vertex_id ) { }
       Update an entry inside a map ( fatal error happens here )
       void put( Vertex target, Edge e )
          boost::put( predEdgeMap, target, e );

In Release mode everything works fine but in Debug mode put method
causes a fatal error. It fails in property_map.hpp (351):

inline R operator[](key_type v) const { return *(iter + get(index, v)) ; }

iter seems to be equal to 0... Which is extremely suspicious. Could
anyone think whether I am doing something wrong? I can provide more
information if this isn't enough.


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at