template<class OutIt, class Pred, class Gen> void generate_n(OutIt first, Dist n, Gen g);
The template function evaluates *(first + N) = g() once for each N in the range [0, n).