On Friday, 24 August 2012 at 05:14:39 UTC, F i L wrote:
To start, let's look at: cast(T) vs to!T(t)

In D, we have one way to use template function, and then we have special keyword syntax which doesn't follow the same syntactical rules. Here, cast looks like the 'scope()' or 'debug' statement, which should be followed by a body of code, but it works like a function which takes in the following argument and returns the result. Setting aside the "func!()()" syntax for a moment, what cast should look like in D is:

    int i = cast!int(myLong);

I agree that cast!int(myLong) looks better and more consistent than cast(int)myLong. But I think your proposed syntax improvement fails when you're casting to const or immutable:

cast(const)myArray  -->  cast!const(myArray)

Then it looks like we're passing a keyword as a template argument.

Reply via email to