[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