On Sunday, 7 September 2014 at 21:23:26 UTC, Jakob Ovrum wrote:
On Sunday, 7 September 2014 at 21:02:16 UTC, John Colvin wrote:bool g(int n) { ... } f(arr, &g);This will fail if `&g` is a function pointer, such as when `g` is declared at module-level scope. In that case, it has to be explicitly converted to a delegate:--- import std.functional : toDelegate; int f(in int[] arr, bool delegate(int) func); bool g(int n) { ... } f(arr, toDelegate(&g)); ---Alternatively, make `f` receive a function pointer instead of a delegate:--- int f(in int[] arr, bool function(int) func); bool g(int n) { ... } f(arr, &g); ---
Thank you too. Btw, why the & operator in this syntax? I used to think ref keyword sort of C's T** and & operator is neeeded.. or is it because f can be a function called without pass any parameter?
