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);
}


Reply via email to