say I have a functor F which takes an argument of type
F::arg_type = quantity<time>
and returns a value of type
F::ret_type = quantity<velocity>
Now I want to write an integration function, which should return the correct type, something like
template<class F> F::ret_type*F::arg_type // only conceptually integrate(F& f, typename F::arg_type a, typename F::arg_type b);
so instantiating this with the above functor should produce a return type quantity
Attempted to solve this with the help of boost.typeof:
template<class F>
BOOST_TYPEOF_TPL(F::ret_type() * F::arg_type())
integrate(F& f, typename F::arg_type a, typename F::arg_type b);
but MVC9 produces a
error C2064: term does not evaluate to a function taking 0 arguments
for the default constructor calls in the macro argument. Any ideas welcome.
Thanks
--
Rupert Mazzucco