Re: Why doesn't this work when the function is a static method?
On Thursday, 14 January 2021 at 15:20:54 UTC, Jack wrote: On Thursday, 14 January 2021 at 09:13:27 UTC, evilrat wrote: On Thursday, 14 January 2021 at 05:44:43 UTC, Jack wrote: On Wednesday, 13 January 2021 at 17:21:23 UTC, Paul Backus wrote: Member functions (including static ones) can't be called with UFCS. is this documented somewhere? Is this going to change? It will stay as is. It is somewhat vaguely described in p.7 under UFCS section in functions https://dlang.org/spec/function.html#pseudo-member I see, thanks If it's really important you can make a module-level alias to the static method. https://run.dlang.io/is/4IFsjr
Re: Why doesn't this work when the function is a static method?
On Thursday, 14 January 2021 at 09:13:27 UTC, evilrat wrote: On Thursday, 14 January 2021 at 05:44:43 UTC, Jack wrote: On Wednesday, 13 January 2021 at 17:21:23 UTC, Paul Backus wrote: Member functions (including static ones) can't be called with UFCS. is this documented somewhere? Is this going to change? It will stay as is. It is somewhat vaguely described in p.7 under UFCS section in functions https://dlang.org/spec/function.html#pseudo-member I see, thanks
Re: Why doesn't this work when the function is a static method?
On Thursday, 14 January 2021 at 05:44:43 UTC, Jack wrote: On Wednesday, 13 January 2021 at 17:21:23 UTC, Paul Backus wrote: Member functions (including static ones) can't be called with UFCS. is this documented somewhere? Is this going to change? It will stay as is. It is somewhat vaguely described in p.7 under UFCS section in functions https://dlang.org/spec/function.html#pseudo-member
Re: Why doesn't this work when the function is a static method?
On Wednesday, 13 January 2021 at 17:21:23 UTC, Paul Backus wrote: On Wednesday, 13 January 2021 at 17:14:04 UTC, Jack wrote: but if I wrap this within a class: class Foo { static int f(HWND hwnd, int n) { return n*10; } static void baa() { HWND foo; writeln(foo.f(10)); } } I get the error: Error: no property f for type void* Member functions (including static ones) can't be called with UFCS. Thanks is this documented somewhere? Is this going to change?
Re: Why doesn't this work when the function is a static method?
On Wednesday, 13 January 2021 at 17:14:04 UTC, Jack wrote: but if I wrap this within a class: class Foo { static int f(HWND hwnd, int n) { return n*10; } static void baa() { HWND foo; writeln(foo.f(10)); } } I get the error: Error: no property f for type void* Member functions (including static ones) can't be called with UFCS.
Why doesn't this work when the function is a static method?
works fine (this is defined at global scope, g and baa are same as static) int f(HWND hwnd, int n) { return n*10; } void baa() { HWND foo; writeln(foo.f(10)); } but if I wrap this within a class: class Foo { static int f(HWND hwnd, int n) { return n*10; } static void baa() { HWND foo; writeln(foo.f(10)); } } I get the error: Error: no property f for type void*