overload of array operations

Jay Norwood jayn at prismnet.com
Fri Oct 14 16:12:25 PDT 2011


Jonathan M Davis Wrote:

> On Friday, October 14, 2011 15:29:17 Jay Norwood wrote:
> > Jonathan M Davis Wrote:
> > > On Friday, October 14, 2011 11:30:25 Jay Norwood wrote:
> > > > Is it possible to overload array operations
> > > 
> > > Please be more specific. Are you asking whether a struct or class can
> > > overload the indexing and slicing operators? If so, the answer is yes.
> > > 
> > > http://d-programming-language.org/operatoroverloading.html
> > > 
> > > - Jonathan M Davis
> > 
> > to be more specific, I'm interested in overloading the vector operations on
> > arrays described at this link, search for "vector operation"
> > 
> > http://www.digitalmars.com/d/2.0/arrays.html
> 
> You could probably do it if you're fancy, but there's no explicit way to have 
> a struct or class operate like that. If you really wanted to though, you could 
> overload opSlice on your struct to return a specific type which then overloaded 
> opBinary for + and then have that return a new struct with the changed values. 
> But that borders on overloaded operator abuse.
> 
> Vector operations are really only intended for arrays.
> 
> - Jonathan M Davis


Yes, I intended to try to overload the array operations on an array of structures.  I just want to use the simple syntax for the operations.

a[]= b[]+c[];
a[] = b[] + 4;
a[] *= 4;

where a, b, c are arrays of structures, and then overload the operations.   It seems to me that should require names for the array operations being overloaded.





More information about the Digitalmars-d-learn mailing list