
Thanks to all, Now I was playing around with Phoenix on my binding problem here as well (which is part of the reason for my confusion)... am I right to think that phoenix has a "result" template incompatible with result_of? The following seems to work when using Phoenix lazy functions, etc., but the standard result template did not. struct test_function_impl { //For phoenix... not sure if necessary for template<typename Arg1, typename Arg2> struct result { //typedef typename Arg1::value_type type; }; template<typename Vector, typename IntT> typename Vector::value_type //The type in the vector... can be a double or AD type operator()(const Vector& x, IntT y) const{ return x[0] * x[0] + y; } }; Thanks, Jesse