On Tue, 10 Oct 2017 19:55:36 +0000, Chirs Forest wrote: > It wouldn't be so bad if I didn't have to use the word cast before each > cast, bust since I have to specify both the word cast and the cast type > and then wrap both the cast type and the value in brackets... it just > explodes my code into multiple lines of unreadable mess. > > > void foo(T)(T bar, T bar2, T bar3){...} > > byte foobar = 12; > > foo!byte(foobar + 1, foobar + 22, foobar + 333); > vs. > foo!byte(cast(byte)(foobar + 1), cast(byte)(foobar + 22), > cast(byte)(foobar + 333));
You could wrap the cast in a function to clean it up a bit: void main() { byte foobar = 12; foo!byte((foobar + 1).b, (foobar + 22).b, (foobar + 333).b); } byte b(int n) pure { pragma(inline, true); // Probably not necessary. return cast(byte)n; } void foo(T)(T bar, T bar2, T bar3) { import std.stdio : writeln; import std.string : format; writeln("%s, %s, %s".format(bar, bar2, bar3)); } --Ryan