overload of array operations

Timon Gehr timon.gehr at gmx.ch
Mon Oct 17 09:30:28 PDT 2011


On 10/15/2011 01:12 AM, Jay Norwood wrote:
> 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.
>
>
>

I agree. It is odd that we have opSliceUnary but not opSliceBinary.






More information about the Digitalmars-d-learn mailing list