Is [] mandatory for array operations?

Jason House jason.james.house at gmail.com
Thu May 6 16:02:03 PDT 2010


Don Wrote:

> Walter Bright wrote:
> > Don wrote:
> >> Walter Bright wrote:
> >>> Don wrote:
> >>>> There are several compiler bugs relating to array operations, and 
> >>>> almost all relate to this issue. I'd like to fix them, but I need to 
> >>>> know which way it is supposed to work.
> >>>
> >>> The [] should be required. I worry that otherwise there will be 
> >>> ambiguous cases that will cause trouble.
> >> Excellent.
> > 
> > Glad we agree. An example is the C hack where if foo is a function, then 
> > &foo as well as foo mean the address of the function. This little 
> > ambiguity, originally meant as a convenience, has caused much grief.
> 
> Two questions. (1) What happens with functions? For example:
> x[] = sin(y[]);
> OR
> x[] = sin(y[])[];
> 
> Seems to me that the [] is not necessary. But it does need to be present 
> for properties.

I strongly favor the first syntax since it matches how I'd write it in a for loop. i.e. I'd replace [] with [i]. If there was a sin variant that took array input, then I'd expect the line to be:
  x[] = sin(y)[]

which would translate to creating a temporary to hold sin(y) array.


More information about the Digitalmars-d mailing list