I was able to compile your original code by changing the line
typedef boost::property_map<Graph, double EdgeProp::*>::type  EdgeWeightMap;
to
typedef boost::property_map<Graph, double EdgeProp::*>::const_type EdgeWeightMap;

That's right! I had completely forgotten about the const_type member... Good catch Dmitry.
 
Andrew Sutton
andrew.n.sutton@gmail.com