it should always be possible to use the expression g[v].min, but if I use the expression g[v] I don't know the type of the object it returns.
If there isn't any way to find out that, I'll have no other option than choosing between your totally-generic solution or
to be still more restrictive and impose using my default implementation of the bundled properties the graph must have.

I don't believe that there's a reliable way to access bundled property types. You can probably use the vertex_property_type and one metafunction or another to extract the bundled types, but I don't know the exact process for this. This only applies to graphs that actually define that type, though.

Expecting a function isn't really "totally generic". It just hides the differences that are causing your problem.

andrew.n.sutton@gmail.com