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?