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.