The template keyword is to disambiguate the actual call, as otherwise the expression might be understood by the compiler as item less-than int64_t greater-than ().
This post 9 goes into detail and can explain it way better than I can.