On Wednesday, 13 May 2020 at 13:36:14 UTC, wjoe wrote:
On Monday, 11 May 2020 at 19:08:09 UTC, Q. Schroll wrote:
[...]
1. You can have variables ("data members") of reference type
in structs. (They work like head-const pointers; if D had
head-const or at least head-const pointers, those would be
practically the same, only that references cannot be null.)
[...]
That's also something I don't really know how to correctly port
to D.
Anyways, that was insightful. Thank you very much for your
explanations.
Another thing that just occurred to me is generating types. Say I
have an AliasSeq of types. I want to generate a list of delegates
taking all of them with all combinations of `ref`ness. Example:
alias list = AliasSeq!(int, char, double);
I want the AliasSeq
alias delegates = AliasSeq!(
R delegate( int, char, double),
R delegate(ref int, char, double),
R delegate( int, ref char, double),
R delegate( int, char, ref double),
R delegate(ref int, ref char, double),
...,
R delegate(ref int, ref char, ref double)
);
That would be way easier if `ref` were part of the type (like
const/immutable/inout/shared are).