Boston D Language Meetup in Back Bay

Steven Schveighoffer via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Nov 17 10:31:40 PST 2016


On 11/17/16 12:42 PM, John Colvin wrote:
> On Thursday, 17 November 2016 at 16:28:08 UTC, Steven Schveighoffer wrote:
>> On 11/17/16 10:38 AM, John Colvin wrote:
>>> On Thursday, 17 November 2016 at 13:59:25 UTC, Steven Schveighoffer
>>> wrote:
>>>> [...]
>>>
>>> Can't you use a template lambda alias argument to pushTo instead, so
>>> then you can instantiate it inside pushTo?
>>>
>>> something like
>>> nullStream!char
>>>     .bufferedInput
>>>     .pushTo!(_ => _
>>>         .arrayCastPipe!ubyte
>>>         .outputFile("output.txt")
>>>     );
>>> maybe?
>>
>> I could do that. But I don't like it ;)
>
> I don't think it's so bad, but fair enough

I can say the part I don't like is the _ => _ thing. Ugly. Other than 
that, it's actually quite nice syntax-wise.

>> I'm also concerned that using a lambda is going to confuse or prevent
>> optimization.
>
> Why would you think that? If we can't trust the optimiser (dmd aside) to
> inline a template lambda argument then phobos is totally screwed!

I admit this isn't a rational fear ;) I just have had experience with 
lambdas where this does happen. The fear part of my brain is warning me, 
but the memory part can't remember the specifics of when this happened...

What happens when you use a local variable in your lambda expression?

-Steve


More information about the Digitalmars-d-announce mailing list