On Friday, 23 May 2014 at 08:20:05 UTC, Philippe Sigaud via Digitalmars-d-learn wrote:
On Fri, May 23, 2014 at 8:44 AM, monarch_dodra via Digitalmars-d-learn
<digitalmars-d-learn@puremagic.com> wrote:
On Friday, 23 May 2014 at 01:17:18 UTC, bioinfornatics wrote:


I would like to get struct's members and zip them with an action

tupleof will do what you need (mostly). However, I don't think there will be any way to (generically) run-time zip on the members, due to probably type mismatch, and memory layout. In any case, nothing trivial, AFAIK.

You can define a map-like (or zip-like) template to act on tuples as if they were ranges, but the resulting type will still be a tuple: in general, the members and the delegates associated with them will all
have a different type.

Bioinfornatics, if you know your struct members are all of the same type, you can 'cast' the tuple as an array by wrapping it in square
brackets like this:

[ myStruct.tupleof ]

and then use the usual range algorithms.

One issue with this is that it will allocate a copy of all the elements. This may be fine if the elements are meant for a "read-only" operation. But it won't solve the issue if there are any mutating operations.

Just saying.

Reply via email to