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