Daily downloads in decline

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Thu Jun 11 12:31:54 PDT 2015


On 6/11/2015 8:03 AM, Dicebot wrote:
> On the other hand they have one important advantage: all type arguments must
> comply to one or more trairs and thus bodies of generics are checked before
> institation. You are only allowed to call methods and operations of generic
> arguments that are defined in relevan trait. This is huge win for code hygiene
> compared to D.

On the other hand, generic bodies in D can inquire if various additional traits 
are available, and then adapt:

   struct S(R) if (isInputRange!R)
   {
     ...
     static if (isForwardRange!R)
     {
          R save()
          {
	     auto result = this;
	     result.r = r.save;
	     return result;
          }
     }
     ...
   }

This kind of thing is used extensively in Phobos generics.


More information about the Digitalmars-d mailing list