How to create TypeTuple/ExpressionTuple from tuple/tuples
"Øivind"
oivind.loe at gmail.com
Tue Aug 7 08:59:56 PDT 2012
Given e.g. a function template
void f(T ...)(T t) {
writeln(t.length);
}
How can I call this function with an already-constructed tuple
but pass the pule as an expressiontuple?
auto v = tuple(1, 2, 3);
f(v);
In the case above, f will print 1 because 1 tuple is given to the
function, but I want to 'flatten' the tuple before the call,
making the function see all the values in the tuple and thus
print 3. I cannot change the function.
Similarly, I want to be able to do this:
auto v0 = tuple(1, 2, 3);
auto v1 = tuple(4, 5, 6);
f(some_function_to_combine_and_flatten_tuples(v0, v1));
And have f print 6.. Calling f(v0, v1) will print 2.
One reason for needing this is that I am using the receive
function in std.concurrency, and I want to be able to merge
message handlers from multiple locations.
More information about the Digitalmars-d-learn
mailing list