Boost logo

Boost Users :

Subject: Re: [Boost-users] boost variant question
From: Igor R (boost.lists_at_[hidden])
Date: 2011-09-25 03:05:08


> I am not sure that I understand it though.
> I have seen examples (wrote a couple myself) where, using the static_visitor,
> "dictated" the behavior of public member functions of the variant type.
> But which iterator type to associate with the hosted type would require a
> variant of iterators to be maintaned along-side. Is this what you mean? If not, is there an example or
> "sketchy" pseudo code you could point me too.

Sorry, perhaps I misunderstood you. Lets say you've got the following:
variant<container1, container2> var;
Do you mean to use it like this:
iterator1 it = your_begin(var);
do_something(it);
If so, you have to know "iterator1" type in compile-time - this is the
problem, isn't it?
Of course, you can find out it with "try and fail" approach, using
get() function template, but this would be ugly and hard to support.
That's why typically one moves do_something (i.e. anything that
depends on the actual container type) to the visitor itself.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net