each & opApply
Alex
sascha.orlov at gmail.com
Wed May 23 14:24:18 UTC 2018
On Wednesday, 23 May 2018 at 14:19:31 UTC, Steven Schveighoffer
wrote:
> On 5/23/18 9:59 AM, Alex wrote:
>> On Wednesday, 23 May 2018 at 13:49:45 UTC, Steven
>> Schveighoffer wrote:
>>>
>>> Right, but not foreach(el1, el2; c), which is the equivalent
>>> of your each call.
>>>
>> Yes. I tried this in the first place and get a compiler error.
>> But it seemed logical to me, that if I define two opApply
>> overloads, which both matches two arguments, then I need to
>> specify which one I want to use. I achieved this by specifying
>> the types inside the foreach... concisely enough for me :)
>>
>> So... I'm looking how to do the same with ´each´, as defining
>> the type of the lambda didn't help.
>
> In your example, you did not define the types for the lambda
> (you used (a, b) => writeln(a, b) ). But I suspect `each` is
> not going to work even if you did.
Yep. Tried this...
> In essence, `each` does not know what the lambda requires,
> especially if it is a typeless lambda. So it essentially needs
> to replicate what foreach would do -- try each of the
> overloads, and if one matches, use it, if none or more than one
> matches, fail.
>
> I suspect it's more complex, and I'm not sure that it can be
> done with the current tools. But it's definitely a bug that it
> doesn't work when you specify the types.
>
Ah... ok. Then, let me file a bug...
More information about the Digitalmars-d-learn
mailing list