On 12/10/2011 3:14 AM, Mehrdad wrote:
... and another... (yes, this one _IS_ a const issue)

struct S { int opApply(scope int delegate(ref inout(int)) dg) inout { return 0; 
} }
void main()
{
foreach (i; S()) { }
}

Error: inout on parameter means inout must be on return type as well (if from D1
code, replace with 'ref')

Right. inout has no point if it also does not appear on the return type.

The purpose of inout is to transfer the 'constness' of the argument to the return type. If inout isn't on the return type somewhere, there's likely a design mistake in your code. It's like having:

{
    a + b;
}

Which is an error in D because such is pointless.

Reply via email to