Marco Leise:

This is "just" a syntax ambiguity. a[] takes the complete
slice of the array 'a'. And a dynamic array in D is a slice.
So if you use a or a[] in an expression doesn't make much of a
difference.

Yet in D the only accepted syntax to perform a vector op sum is to use add square brackets both operands:


void main() {
    auto a = new int[5];
    auto b = new int[5];
    auto c = new int[5];
    c[] = a[] + b[]; // OK
    c[] = a + b; // Error: invalid array operation
    c[] = a[] + b; // Error: invalid array operation
    c[] = a + b[]; // Error: invalid array operation
}


Bye,
bearophile

Reply via email to