Return by 'ref' problems...

Meta jared771 at gmail.com
Wed Feb 19 08:47:06 PST 2014


On Wednesday, 19 February 2014 at 16:20:39 UTC, Remo wrote:
> Hi,
>
> are there any news about this problem ?
>
> This code does compile.
> [code]
> ref int min(ref int lhs,ref int rhs) {
> 	return lhs > rhs ? rhs : lhs;
> }
> auto fptr = &min;
>
> pragma(msg,typeof(fptr).stringof);  //int function(ref int lhs, 
> ref int rhs) ref
> [/code]
>
> But how to manually specify type of fptr?
>
> This does not compiles
> [code]
> int function(ref int lhs, ref int rhs) ref  fptr3 = &min; 
> //Error:  no identifier for declarator int function(ref int 
> lhs, ref int rhs)
> [/code]
>
> this one too.
> [code]
> ref int function(ref int lhs, ref int rhs)   fptr3 = &min; 
> //Error: only parameters or foreach declarations can be ref
> [/code]
>
> Right now I am using dmd.2.065.0-rc1.

Looks like it's a bug. A workaround is:

typeof(&min) fprt = &min;

Or just use auto like in your example above.


More information about the Digitalmars-d mailing list