Boost.Variant: Passing visitor as a function argument

Using the Boost.Variant library, I'm trying to pass a visitor as an
argument to a class method (the class instance contains the objects to
be visited), but I can't come up with a solution that compiles.
For example:
typedef std::pair

Just for note, but considering that you are asking for a static_vistor directly, and you create a visitor by using the CRTP, this shows that you might want to learn a little bit more about how C++ handles classes before delving into too much more.

Could you explain what you mean? If by CRTP you mean the "curiously recurring template pattern," how does that apply here? The template parameter for static_visitor is its return type, not the type of the derived visitor. What specifically should I be focusing on learning more about here?

On Fri, Sep 4, 2009 at 12:54 PM, Hawkes
Steve-FSH016
Er, right, it is not using it, brain-fart... Regardless, you need a fully declared type, void visit(boost::static_visitor<> const& visitor) will error as you saw. You need to templatize it as the post above mine shows: template<class Visitor> void visit(Visitor visitor)
participants (3)
-
Hawkes Steve-FSH016
-
Igor R
-
OvermindDL1