opIndexUnary post in-/decrement how to ?
Tejas
notrealemail at gmail.com
Wed Jul 14 12:49:58 UTC 2021
On Wednesday, 14 July 2021 at 12:35:07 UTC, wjoe wrote:
> On Wednesday, 14 July 2021 at 11:31:36 UTC, Tejas wrote:
>>
>> ``` {auto a = i[1] , ++i[1] , a} //note the , not the ;```
>>
>> Sorry I can't provide something even more concrete.
>
> Yes I saw that, and I suppose it would work just fine if it
> were rewritten to just ```++i[1]```.
> What I'm struggling to understand is the ```{auto a = i[1], ...
> ,a}``` part. I can't parse that. What's up with the assignment
> and the comma stuff ?
I think it's a bug, because the following works:
```d
import std.stdio;
struct abc{
int[100] a;
int opIndex(int index){
return a[index];
}
int opIndexUnary(string s)(int index)
if(s == "++"){
return ++a[index];
}
int[] opUnary(string s)() if (s == "++"){
return a[] += 1;
}
}
void main (){
abc s;
int[100] a;
int temp;
writeln (a[20]++);
writeln(a[20]);
writeln(++s[20]);
writeln(s[20]);
//writeln(s[0]++);// doesn't work for some reason
writeln(s[0]);
writeln(s++);//but this works!!
writeln(s);
}
```
More information about the Digitalmars-d-learn
mailing list