<div class="gmail_quote">On 4 May 2012 18:07, Jakob Ovrum <span dir="ltr"><<a href="mailto:jakobovrum@gmail.com" target="_blank">jakobovrum@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Friday, 4 May 2012 at 14:57:14 UTC, Timon Gehr wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
What would be the meaning of<br>
<br>
void foo(ref void function() fn) { }<br>
<br>
?<br>
</blockquote>
<br></div>
Parameter storage classes can only go before the type, while function attributes can also go after the parameter list (of the function pointer or delegate for this case). So I would think that:<div class="im"><br>
<br>
    void foo(ref void function() fn) { }<br>
<br></div>
The above 'foo' would receive a function pointer by reference, while:<br>
<br>
    void foo(void function() ref fn) { }<br>
<br>
Would receive a function pointer which returns by ref.<br>
</blockquote></div><br><div>It's very counter intuitive to mark the _function_ ref, rather than it's return type.</div>