Solved by ptrblck in post #2 
              
              
                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 goes into detail and can explain it way better than I can.