opIndexUnary post in-/decrement how to ?

Tejas notrealemail at gmail.com
Wed Jul 14 15:40:19 UTC 2021


On Wednesday, 14 July 2021 at 15:23:05 UTC, vit wrote:
> On Wednesday, 14 July 2021 at 15:19:03 UTC, vit wrote:
>
>
> ```d
> import   std.stdio;
>
> struct abc{
>     int[100] a;
>
>     struct Proxy{
>         abc* ptr;
>     	const int index;
>
>         int opUnary(string op : "++")(){
>         	return ++ptr.a[index];     //add missing ++
>         }
>     }
>
>     Proxy opIndex(int index)return{
>         return Proxy(&this, index);
>     }
> }
>
> void main (){
>     abc s;
>     s[0]++;
>     ++s[0];
> }
>
>
> ```

The ```post increment``` still doesn't work :(

this is the output for your code:
```
Proxy(7FFC7ACB3E60, 0)
2
```
And if the add the following statements:
```d

writeln(s[0]++);
     writeln(s[0]);
     writeln(s[0]++);
     writeln(s[0]);
     writeln(++s[0]);
```

Output:
```
Proxy(7FFCBE3CAF20, 0)
Proxy(7FFCBE3CAF20, 0)
Proxy(7FFCBE3CAF20, 0)
Proxy(7FFCBE3CAF20, 0)
3

```



More information about the Digitalmars-d-learn mailing list