On Tuesday, 3 October 2023 at 13:07:00 UTC, Steven Schveighoffer wrote:
>Now, you can define a further opIndexAssign(T val, size_t idx). However, now you lose capabilities like a[0]++, which I don't think has a possibility of implementing using an opIndex operator, and it would be pretty ugly if you had to.
Works for me, with both ++ and +=: https://run.dlang.io/is/JckTVG
AST output confirms that these are lowered to use opIndex.
Looking at the spec, it seems like opIndex would only be pre-empted here if you overloaded opIndexUnary (for ++) and/or opIndexOpAssign (for +=).
Permalink
Reply