Re: Why doesn't this work when the function is a static method?

2021-01-14 Thread Anonymouse via Digitalmars-d-learn

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?

2021-01-14 Thread Jack via Digitalmars-d-learn

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?

2021-01-14 Thread evilrat via Digitalmars-d-learn

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?

2021-01-13 Thread Jack via Digitalmars-d-learn

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?

2021-01-13 Thread Paul Backus via Digitalmars-d-learn

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?

2021-01-13 Thread Jack via Digitalmars-d-learn
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*