Boost logo

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