zero based indexing is the exact kind of ugly optimization that the compiler should encapsulate. the 1st item is item 1 and should be found at index 1. you wouldn't manually inline your inline functions, you wouldn't hand write a Duff's device, don't start counting at zero