Dispatching on a variant
Justin Johansson
procode at adam-dott-com.au
Sat Sep 26 17:37:25 PDT 2009
Christopher Wright Wrote:
> Justin Johansson wrote:
> > I've had a good poke around the forums and couldn't find anything on this so ...
> >
> > What's the recommended method for dispatching code off the runtime type of a variant variable
> > (Phobos D2 std.variant)?
> >
> > Does one use a bunch of
> >
> > if ( var.peek!(type1)) { ... }
> > else if ( var.peek!(type2) { ... }
> >
> > for all N possible types, or is there a better & faster way with a switch or jump table of sorts?
>
> Variant should have an accessible typeinfo property. (When I say should,
> I mean that it would be appropriate for it to have it. I am not saying
> that I believe it has it.) It should be faster to compare that (or
> switch on typeinfo.name) than to peek for each type.
Thanks, there is and I was considering that.
TypeInfo type()
{
TypeInfo result;
fptr(OpID.getTypeInfo, null, &result);
return result;
}
Would you need a full char-by-char string compare or could you cook it on the basis of a string memory address == comparison?
(Sorry, I'm a veteran C++'er not a fully-fledged D'er yet).
More information about the Digitalmars-d
mailing list