In the code snippet below (which is inside a vis object)
 if the line    //g[*ei].edge_Weight = "Heavy";
is uncommented, compiling gives :error const discarded ( or something to that effect)
because of the const in  (const Graph & g) .

But then how come put(m_eWeight_map, *ei, "Heavy");
compiles successfully and successfully changes the value?
Does   put(m_eWeight_map, *ei, "Heavy");  override the const in
void Change_data(const Graph & g) ?

template < typename Graph >
    void Change_data(const Graph & g)
    //void Change_data(Graph & g)
  {

    typename graph_traits< Graph >::edge_iterator ei, ei_end;

        for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
                put(m_eWeight_map, *ei, "Heavy");
                //g[*ei].edge_Weight = "Heavy";

        }

  }

Thanks
- Caligula