Use bind to call a free function on a vector of shared_ptrs?

struct A { };
void f(const A&);
std::vector<boost::shared_ptr<A> > v;

for_each(v.begin(), v.end(), boost::bind(f, ???? ) );

what goes where ???? is?

Thanks, Rob.