Getting a working example of opIndexAssign using opSlice ... have troubles ...

Tejas notrealemail at gmail.com
Mon Aug 16 06:42:48 UTC 2021


On Monday, 16 August 2021 at 06:36:02 UTC, james.p.leblanc wrote:
> On Monday, 16 August 2021 at 06:20:11 UTC, Tejas wrote:
>
>> Maybe just write `T[]` in code rather than making it happen 
>> via the colon?
>>
>> I also have similar troubles, removing the default value 
>> always helped me.
>>
>> Can you show the code where you're trying to apply this?
>
> Hej Tejas,
>
> Sure, here is the code snippet, it resides within a struct
> along with various operator overloads.
>
> To be honest, I am not exactly sure what is happening here. I
> am unfamiliar with the "(T : T[])" syntax ... need to read
> up a bit on that. (However, not so eary searching for a ":")
>
> BR,
> jpl
>
>
> // --- cast overloading 
> -------------------------------------------
> // T[] opCast(T : T[])(){     // this works
>    T[] opCast(T[])(){ // yields: "Error: identifier expected 
> for template value param"
>       T[] x;
>       x.length = this.length;
>       for( int i = 0 ; i< this.length ; i++){
>          x[i] = this.ptr[i];
>       }
>       return x;
>    }

Oh, you're writing `T[]` in the code anyways.

I was saying to just remove the `:T[]` from the function 
parameter and write `T[]` in the function body itself, which 
you're already doing.

If the code works, what's the problem?


More information about the Digitalmars-d-learn mailing list