The following compiles OK

typedef string Colour;

struct edge_properties
  {
    vector < set< Colour > > eColours;
  }

until I get to


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

  typename graph_traits<Graph>::edge_iterator edge_iter, edges_end;
  typedef vector <set< string > > VCS;
  typedef vector <set< string > >::iterator vcs_iter, vcs_end;

  for (tie(edge_iter, edges_end) = edges(g); edge_iter != edges_end; ++edge_iter) {
                VCS & vcolour_set = get(m_eColours_map, *edge_iter);
                for(vcs_iter = vcolour_set.begin(); vcs_iter != vcolour_set.end(); ++vcs_iter) {

                  ;
                }
        }

  }

Then compiler says
error: expected unqualified id before '=' token
Referring to the line which is underlined above.
So its referring to vcs_iter.

Whats wrong?

Thanks