Introduction to traits (and __traits)
bearophile
bearophileHUGS at lycos.com
Fri Aug 30 14:51:37 PDT 2013
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
More information about the Digitalmars-d-learn
mailing list