Given an object, how to call an alias to a member function on it?
    Quirin Schroll 
    qs.il.paperinik at gmail.com
       
    Thu May  4 11:34:07 UTC 2023
    
    
  
On Wednesday, 3 May 2023 at 11:38:46 UTC, Adam D Ruppe wrote:
> On Tuesday, 2 May 2023 at 13:57:23 UTC, Steven Schveighoffer 
> wrote:
>> Isn't that what `__traits(child)` is for?
>>
>> https://dlang.org/spec/traits.html#child
>
> Yes, `__traits(child, object, method_alias)(args)` is the way 
> to do it.
This doesn’t work, but a slight modification does the trick:
```d
--- a.d
#line 3 "a.d" // for run.dlang.io
struct S
{
     private void f() {}
}
alias Sf = S.f;
--- b.d
#line 12 "b.d" // for run.dlang.io
import a;
void main()
{
     S s;
     __traits(child, s, Sf)(); // error: Error: struct `a.S` 
function `f` is not accessible
     (&__traits(child, s, Sf))(); // ok
}
```
Thanks for making me aware of `__traits(child)`.
    
    
More information about the Digitalmars-d-learn
mailing list