Thread overview | |||||
---|---|---|---|---|---|
|
December 15, 2009 Binary operation on typedefs | ||||
---|---|---|---|---|
| ||||
Do you think is it bug? typedef uint A; typedef A B; const A a1 = cast(A)0x01; const A a2 = cast(A)0x02; const B b1 = cast(B)0x04; const B b2 = cast(B)0x04; const A a3 = a1 | a2; // great it's ok (a1, a2, a3 same type) const A a4 = b1; // great it's ok (b1 is delivered from A) const A a5 = a1 | b1; // ERROR, but why? In my opinion result of a1 and b1 shoud be A type not uint. |
December 16, 2009 Re: Binary operation on typedefs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Zarathustra Attachments: | Zarathustra wrote: > Do you think is it bug? > > typedef uint A; > typedef A B; > > const A a1 = cast(A)0x01; > const A a2 = cast(A)0x02; > > const B b1 = cast(B)0x04; > const B b2 = cast(B)0x04; > > const A a3 = a1 | a2; // great it's ok (a1, a2, a3 same type) > const A a4 = b1; // great it's ok (b1 is delivered from A) > const A a5 = a1 | b1; // ERROR, but why? > > In my opinion result of a1 and b1 shoud be A type not uint. typedef is broken and is going to be removed from D2. So don't use it in D1 either. - -- My enormous talent is exceeded only by my outrageous laziness. http://www.ssTk.co.uk |
December 16, 2009 Re: Binary operation on typedefs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Zarathustra | On Wed, 16 Dec 2009 02:45:35 +0300, Zarathustra <adam.chrapkowski@gmail.com> wrote:
> Do you think is it bug?
>
> typedef uint A;
> typedef A B;
>
> const A a1 = cast(A)0x01;
> const A a2 = cast(A)0x02;
>
> const B b1 = cast(B)0x04;
> const B b2 = cast(B)0x04;
>
> const A a3 = a1 | a2; // great it's ok (a1, a2, a3 same type)
> const A a4 = b1; // great it's ok (b1 is delivered from A)
> const A a5 = a1 | b1; // ERROR, but why?
>
> In my opinion result of a1 and b1 shoud be A type not uint.
typedef defines a new type. Use "alias" instead.
|
Copyright © 1999-2021 by the D Language Foundation