On Sunday, 14 December 2014 at 11:53:21 UTC, Nordlöw wrote:
Why arent' Tuples defaultly printed as
(1, 2)
instead
Tuple!(int, int)(1, 2)
?
What's the most convenient of tweak this behaviour so I get
untyped-printing. Is there a function to convert a Tuple to
into a D parameter tuple?
Tuple.expand?
template Wrapper(Tuple)
{
static if(isTuple!Tuple)
{
struct Wrapper(Tuple)
{
Tuple tup;
alias tup this;
// should use a better overload
string toString()
{
auto app = appender!string();
app.put("(");
app.put(to!string(wrapper(tuple[0])));
foreach(t; tuple.expand[1 .. $])
{
app.put(", ");
app.put(to!string(wrapper(t))))
}
app.put(")");
return app.data;
}
}
}
else
alias Wrapper = Tuple;
}
auto wrapper(T)(T t) { return Wrapper!T(t); }