equivariant functions

ore-sama spam at here.lot
Mon Oct 13 01:21:17 PDT 2008


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.



More information about the Digitalmars-d mailing list