Andrei Alexandrescu wrote:
Christopher Wright wrote:
Andrei Alexandrescu wrote:
void foo_templated(T...)(T args)
{
Variant[args.length] dynatyped;
foreach (i, arg; args) dynatyped[i] = arg;
return foo(dynatyped);
}
void foo(Variant[] dynatyped...)
{
...
}
Andrei
Okay, that's a reasonable solution, except that it doesn't work with
interfaces. I already submitted a bugzilla entry that you should be
able to create a Variant[] from D varargs, but that still requires
writing a wrapper function.
A Variant[] is difficult to create from TypeInfo[] + void* varargs
because vital information has already been lost. That's why I'm saying
we better fix the situation by e.g. implementing opImplicitCast. Please,
let's leave void* alone.
Andrei
I don't find that this is the case. I implemented a Variant type that
can be created from a void* and a typeinfo -- I had to, since tango's
Variant doesn't support this (and, incidentally, because there is no way
to get a representation of the data inside a tango Variant).
What information did you find that you needed but is not available in
TypeInfo?