Simple example: find_first int find_first(const vector &v, bool pred(int)) { for (int i = 0; i < v.size(); i++) { if (pred(v[i])) { return i; } } return -1; }