equivariant functions

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Oct 13 05:28:09 PDT 2008


ore-sama wrote:
> Andrei Alexandrescu Wrote:
> 
>> typeof(s) stripl(const(char)[] s);
>>
>> This signature states that it returns the same type as an argument. I 
>> propose that that pattern means stripl can accept _any_ subtype of 
>> const(char)[] and return that exact type. Inside the function, however, 
>> the type of s is the type declared, thus restricting its use.
> 
> this conflicts with current definition of typeof. Currently
>  typeof(s) stripl(const(char)[] s); should be interpreted exactly as
>  const(char)[] stripl(const(char)[] s);
> it's unclear that typeof here gets type of actual argument rather than parameter. Currently typeof applies to parameter.

That is correct.

Andrei



More information about the Digitalmars-d mailing list