Never use negative indices as template parameter

clang++ chokes on this, and current behavior was definitively broken
anyway.