Trying to replace vector with std::map as follows. Replace typedef string Colour; struct edge_properties { vector < set< Colour > > eColours; } with typedef string Colour; struct edge_properties { std::map < int, set< Colour > > emColours; } Using property_map < graph_t, map < int, <set< Colour > > > edge_properties::*>::type emColours_map =get(&edge_properties::emColours,g); getting compiler errors error: template argument 2 is invalid error: template argument 4 is invalid Thanks -JR |