
Hi Jeremy,
The problem is that if a graph don't privde vertex index property, then it's not possible to create efficient external property map -- the only way I know is std::map, which is not as fast as property maps which use indices.
Is there some reason you want to have a graph without a vertex index property and also use external property maps? If not, just use graph a with a vertex index internal property. Or am I missing something?
The issue is for all types of graph that don't use vecS for vertices storage, you need to manually initialize vertex index (or am I mistaked?). I looks like a big inconvenience for me, so I basically always assume that I use vecS.
Ah, but the documentation does not say that std::string is convertible to property<vertex_name_t,std::string>("brother"), at least I can't find it.
Oops, there's lots of stuff missing from the docs for property. I've checked in a bunch of additions.
Thanks! The updated docs now answer my question.
Another idea: isn't this a good application for named function parameters?
add_vertex(g, vertex_name_t("brother").vertex_index_t(10));
? I'm still in dark about named parameters used by BGL or the upcoming named param library, so is not sure if this exact syntax is implementable.
That's a good idea.
Ok, placed to the ideas bag ;-) Hopefully one day we can grab it from there and implement -- though need to understand what other users want. - Volodya