The reason is that then the compiler can use loop unrolling to speed up the routine. I confimed this observation by experimenting with find. Here I used the SGI STL implementation where the critical loop is unrolled four times by hand. Mads observed afterwards that gcc makes an automatic type conversion here so this might not be a problem. The standard does not require that we do something clever, but this is still a possibility.
Next step is to learn doxygen.
Up to now no answer from Dimitri is obtained. My -I. error turns out to be helpful here. Lars solved this problem. As it turned out the use of helper functions is essential. These functions are put to namespace helper.