Constraints & Concepts [Was: Re: C++0x news]

bearophile bearophileHUGS at lycos.com
Mon Mar 15 09:40:01 PDT 2010


> typeof(P.sides[0]) perimeter(P)(const ref P poly) if (__traits(satisfiesConcept, perimeter, IsPolygon)) {

That's silly because the if() is called only when the template is instantiated, so this is a little better:

static assert(__traits(satisfiesConcept, perimeter, IsPolygon));

A problem left is that IsPolygon is not a list of things, currently it's a nested piece of D code for __traits(compiles).

Bye,
bearophile



More information about the Digitalmars-d mailing list