[Issue 251] foreach does not allow updating inside with block
David Medlock
noone at nowhere.com
Thu Jul 13 17:22:15 PDT 2006
BCS wrote:
> David Medlock wrote:
>
>> d-bugmail at puremagic.com wrote:
>>
>>> http://d.puremagic.com/issues/show_bug.cgi?id=251
>>>
>>>
>>>
>>>
>>>
>>> ------- Comment #1 from shro8822 at uidaho.edu 2006-07-13 18:46 -------
>>> use inout
>>>
>>> with(foo)
>>> {
>>> foreach( int n, inout Bar bar; arr ) bar.a = 100;
>>> }
>>>
>>> haven't tested this but...
>>>
>>> INVALID I think
>>>
>>>
>> Has this changed?
>>
>> I know the opApply used to require inout arguments, and they were
>> implied mutable on iteration.
>
>
> I think that a basic foreach on an array requiters inout to change things.
>
> http://www.digitalmars.com/d/statement.html#foreach
>
> The opApply does requirer the inout (I ran into this a week or so back).
> This seems like a problem to me. A non-inout version should be allowed
> so that read only access can be granted.
Agreed.
More information about the Digitalmars-d-bugs
mailing list