On 10/14/2011 09:43 PM, 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

I disagree. Operator overloads are there to make types act like built-in types, which is what he wants. Overloaded operator abuse is the act of creating a type that uses the operators for different semantics than the built-in ones.

What you describe is actually close to how the language handles dynamic array slices. But reproducing the behavior with operator overloading does indeed not work nicely because of type inference. (we'd need a way to overload the typeof operator ;))



Reply via email to