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