Amusing D facts: typesafe variadic arrays are lazy!

Chris Nicholson-Sauls ibisbasenji at gmail.com
Tue Oct 13 12:40:08 PDT 2009


downs wrote:
> 
> Here is a funny consequence of this amusing fact:
> 
> if you overload opAssign in a struct with lazy T[] dgs..., you can achieve the following syntax
> 
> 
>>     WithFlag(GL_BLEND, true) = WithDepthMask(false) = tex.With = Quads = {
>>       foreach (i, q; qa) {
>>         float f = 1f*i / qa.length; Color(1f-f, f, 1f);
>>         TexCoord(0f, 0f); Vertex(q.points[0]);
>>         TexCoord(1f, 0f); Vertex(q.points[1]);
>>         TexCoord(1f, 1f); Vertex(q.points[3]);
>>         TexCoord(0f, 1f); Vertex(q.points[2]);
>>       }
>>     };

That's... just beautiful...

-- Chris Nicholson-Sauls



More information about the Digitalmars-d mailing list