On Fri, 19 Feb 2010 12:59:36 -0500, Michel Fortin <michel.for...@michelf.com> wrote:

On 2010-02-19 11:03:30 -0500, "Steven Schveighoffer" <schvei...@yahoo.com> said:

//the cast is only there to shut up the stupid dmd!
int[] arr = cast(int[])([0, 1, 2]);
Yes, but a cast is a red flag. A simple appending of brackets is not. It is well established that casts are to let you do things that in most contexts are not a good idea. Brackets are not the same.

That's the theory. It doesn't quite work in practice because you sometime have to cast to convert from one type to another (float to int, base class to derived), or to make a literal of the type you want (especially with array literals). Many usages of cast are safe, many aren't. So seeing cast as a red flag doesn't really work, unfortunately.

Even SafeD allows cast, it just restricts it to safe usages.

There are some valid uses of casting, but cast is much more of a red flag than brackets. Brackets are used everywhere. Search your code for [] and I'm sure you'll find a lot more instances than casting.

But I think aside from this, dynamic casting should really be a separate function, I wouldn't mind if it's functionality moved into the library.

-Steve

Reply via email to