On Monday, 22 April 2019 at 11:04:49 UTC, dangbinghoo wrote:
alias ifr_ifrn.ifrn_name ifr_name; /* interface name */
So, how to do alias for a C struct member?
D doesn't support this kind of alias. There's two options:
1) just write the full name in the code.
ifreq ifr;
ifr.ifr_ifrn.ifrn_name /* instead of ifr.ifrn_name */
or, if you are linking in the D module containing the translated
headers (if you don't link it in, this will cause missing symbol
linker errors!)
2) write ref property functions to get to it, using ufcs for the
middle. So replace that *alias* line with:
@property ref ifr_name(ifreq this_) { return
this_.ifr_ifrn.ifrn_name; }
Then you should be able to use it the same way as in C.