// typedef boost::property_map<Graph, double const EdgeProp::*>::type EdgeWeightMap; // EdgeWeightMap edgeWeightMap = get(&EdgeProp::cost, graph); Option A works, but is a bit ugly. Option B is what you suggested, but it gives the following error: