Joseph Rushton Wakeling:
static if (!__traits(hasMember, G, "directed") ||
!__traits(hasMember, G, "edge") ||
!__traits(hasMember, G, "edgeCount") ||
!__traits(hasMember, G, "vertexCount") ||
!__traits(hasMember, G, "isEdge") ||
!__traits(hasMember, G, "edgeID") ||
!__traits(hasMember, G, "addEdge") ||
!__traits(hasMember, G, "degreeIn") ||
!__traits(hasMember, G, "degreeOut") ||
!__traits(hasMember, G, "incidentEdgesIn") ||
!__traits(hasMember, G, "incidentEdgesOut") ||
!__traits(hasMember, G, "neighboursIn") ||
!__traits(hasMember, G, "neighboursOut"))
Perhaps can shorten that code writing a hasMembers helper (and I
suggest to keep those names sorted):
static if (hasMembers!(G, "addEdge
degreeIn
...
vertexCount".split) {
Bye,
bearophile