I'm writing a couple of modules for dealing with database values (well really
it's just storage of aggregates) in a native fashion from within D, using D
2.023. I have a tuple called FieldTypes which contains the D-side types. I'm
trying to use it to implement opApply:
int opApply (int delegate (FieldTypes) func)
Unfortunately, this fails because the compiler only accepts the field types if
they're references. But if I do this:
int opApply (int delegate (ref FieldTypes) each)
It seems that the delegate takes a reference to one type, which is a value
tuple! For example it claims that, simplified, "function Table.opApply (int
delegate (ref (string, string)) each) does not match parameter types (int
delegate (ref string, ref string))".
I've already implemented another opApply that takes a Line containing all the
fields, but I'd like to have the expanded form as well if possible. Is it?