www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - c style casts

reply Warwick <warwick warwick.com> writes:
I though C style casts were not supported? But when I accidentaly 
did

int i;
if (uint(i) < length) ....

it compiled and worked fine. Whys that?
Jan 15
next sibling parent Ilya Yaroshenko <ilyayaroshenko gmail.com> writes:
On Friday, 15 January 2016 at 10:16:41 UTC, Warwick wrote:
 I though C style casts were not supported? But when I 
 accidentaly did

 int i;
 if (uint(i) < length) ....

 it compiled and worked fine. Whys that?
This is not a cast. You call constructor `uint(int x)`. In the same time `uint(somethingTypeOfLong)` would not work, but cast(long). --Ilya
Jan 15
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2016-01-15 11:16, Warwick wrote:
 I though C style casts were not supported? But when I accidentaly did

 int i;
 if (uint(i) < length) ....

 it compiled and worked fine. Whys that?
Wouldn't a C style cast be: int i; if ((uint)i < length) ? -- /Jacob Carlborg
Jan 15
parent Warwick <warwick warwick.com> writes:
On Friday, 15 January 2016 at 15:13:37 UTC, Jacob Carlborg wrote:
 On 2016-01-15 11:16, Warwick wrote:
 I though C style casts were not supported? But when I 
 accidentaly did

 int i;
 if (uint(i) < length) ....

 it compiled and worked fine. Whys that?
Wouldn't a C style cast be: int i; if ((uint)i < length)
Yeah bad memory on my part, it's C++ cast, or one of them.
Jan 16