AMDG Perry, Daniel wrote:
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?
So the function has a fixed signature?
You'll need to adapt a vector to the fusion interface.
The easiest way it to convert it to a boost::array (which is a fusion
sequence)
and use transform (untested).
struct variant_get {
template<class Sig>
struct result {
typedef typename boost::mpl::at_c