On Tuesday, 13 October 2015 at 16:22:36 UTC, data pulverizer
wrote:
Thanks for the suggestion Alex, however I need the dynamic
behaviour properties of variantArray(), writing a struct each
time would be undesirable.
Perhaps I could boil down the question to something like, is
there a way of writing
auto x = dt[0][0];
auto y = x.get!(x.type - or whatever); // to get the actual
value of x rather than .VariantN! ... type
For some kind of auto cast back to basic type.
The problem is that you can't do `x.get!(x.type)`, because the
type of the expression must be known at compile time, but
`x.type` is a runtime value. You'd have to create a branch for
each type that `x.type` might be.
But again, unless you are dealing with a truly dynamic layout
(and not a bunch of fixed layouts), there's better options. For
example, you can use `std.range.zip` to iterate through each
column array in lockstep, returning tuples for each element.
foreach(entry; zip(names, ages, languages)) {
write(entry.expand);
}