
I'd like to use boost::function to wrap (pointer to) function to pass to template functions that expect function objects. I'm just wondering, though, if using boost::function wrapper will introduce additional overhead into the function call? example: template<typename in_t, typename out_t, typename func_t> inline void apply (in_t const& in, out_t out, func_t const&f) { typename boost::range_const_iterator<in_t>::type i = boost::begin (in); typename boost::range_iterator<out_t>::type o = boost::begin (out); for (; i != boost::end (in); ++i, ++o) *o = f (*i); } template<typename in_t, typename out_t> inline void phaseDouble (in_t const& in, out_t &out) { apply (in, out, lvalue_cast (boost::function<typename boost::range_value<out_t>::type (typename boost::range_value<in_t>::type)> (some function))); } }