#include <vector>

template<class T, class F>
auto f(std::vector<T> v, F fun) -> decltype(bool(fun(v[0])), void())
{
  // ...
}

int main(){
  std::vector<int> v;
  f(v, [](int){ return true; });
}