What
about runtime detection? Would get(property_tag,graph) compile correctly
for an unexistant property? What would it return, then, at runtime if
the property
does not exist? a 0 pointer?
Unfortunately, I don't think such a function actually exists. However, if you can detect these at compile time, you can easily reflect that as a runtime query:
template <typename Graph, typename Prop>
bool has_property(Graph const& g)
{ return has_property_metafunc<Prop, Graph>::value; }