Problem overloading operator for a struct with an immutable member

ketmar via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Mar 25 21:57:55 PDT 2015


On Tue, 24 Mar 2015 16:49:01 +0000, Nicolas Sicard wrote:

> I don't know if this is a bug or expected behaviour. The struct is
> mutable, assignable and pre-increment operator works. But post-increment
> doesn't compile because of the immutable member.
> 
> --
> struct S {
>      int i;
>      immutable(Object) o;
> 
>      S opUnary(string op)() { return this; }
>      void opAssign(S other) {}
> }
> 
> void main()
> {
>      S s, t;
> 
>      t = s; // OK ++s; // OK s++; // Error: cannot modify struct s S
>      with immutable members
> }
> ---

by the way. do you know that you still CAN overload postincrement 
operation? yes, the code is still here, and it works... somethimes. ;-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20150326/491a5f15/attachment.sig>


More information about the Digitalmars-d-learn mailing list