|
Boost Users : |
Subject: Re: [Boost-users] Dynamic function call question
From: Perry, Daniel (PerryD_at_[hidden])
Date: 2009-02-26 12:53:40
AMDG
Perry, Daniel wrote:
> I've been trying to design a function dispatch system and I was
> wondering if the following is possible with the current boost
libraries...
>
> I currently parse json data into an vector of variants, I would like
> to be able to take those variants and invoke an arbitrary boost
> function object with a consistent return type.
>
> Is it possible to determine the function argument types, get the typed
> value from the proper index in the array of variants, and call the
> function with arguments?
>
> This sounds like something the boost fusion library might be able to
> do, but I can't find any example code using the library to see if this
> is the right fit for the capabilities of the library or if what I'm
> looking to do is not possible without tons of boiler plate.
Is apply_visitor what you are looking for?
http://www.boost.org/doc/html/boost/apply_visitor.html
In Christ,
Steven Watanabe
Steven,
No I was aware of the visitors. I am thinking more along the lines of
template< Signature>
void Execute( vector<variant> args, function<Signature> & Fun )
{
fusion::vector< parameter_types<Signature>::type > typed_args(
magic_happens_here(args));
fusion::invoke_procedure(Fun, typed_args);
}
What can I do to make the magic happen?
Regards,
Daniel Perry
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