mixin template's alias parameter ... ignored ?
someone
someone at somewhere.com
Tue Jul 13 00:42:27 UTC 2021
On Monday, 12 July 2021 at 23:25:13 UTC, Ali Çehreli wrote:
> On 7/12/21 3:35 PM, someone wrote:
>
> >>> private size_t pintSequenceCurrent = cast(size_t) 0;
> >
> >> Style: There's no need for the casts (throughout).
> >
> > [...] besides, it won't hurt, and it helps me in many ways.
>
> I think you are doing it only for literal values but in
> general, casts can be very cumbersome and harmful.
Cumbersome and harmful ... could you explain ?
> For example, if we change the parameter from 'int' to 'long',
> the cast in the function body is a bug to be chased and fixed:
>
> // Used to be 'int arg'
> void foo(long arg) {
> // ...
> auto a = cast(int)arg; // BUG?
> // ...
> }
nope, I'll never do such a downcast UNLESS I previously tested
with if () {} for proper int range; I use cast a lot, but this is
mainly because I am used to strongly-typed languages etc etc, for
example if for whatever reason I have to:
ushort a = 250;
ubyte b = cast(ubyte) a;
I'll do:
ushort a = 250;
ubyte b = cast(ubyte) 0; /// redundant of course; but we don't
have nulls in D for ints so this is muscle-memory
if (a <= 255) { /// or ubyte.max instead of 255 (I think it is
possible)
b = cast(ubyte) a;
}
> void main() {
> foo(long.max);
> }
>
> Ali
More information about the Digitalmars-d-learn
mailing list