for_each_cons and for_each_slice, variants of std::for_each working on sliding windows
The two main issues I see are that


You require RandomAccessIterators although these should be implementable with ForwardIterators as well since you never have to skip an element.
This will fail for functors with an overloaded or templated operator() such as those with auto parameters


Also, what happens if the range's length isn't divisible by the step size in the second case?

As 2 isn't really possible to solve since in the overloaded case there may be multiple valid values for n_args you could allow the user to pass the number of arguments as a first parameter. You could then default that value to 0 (which is never valid) and infer the number of parameters as you currently do if it is set to 0.