-//
-// One thing we need in order to accomplish this is a way to cause the compiler
-// to specialize 'invoke' with a parameter pack containing a list of indices
-// for the elements of the tuple. This will allow us to call the underlying
-// function with the exploded contents of the tuple. The empty type
-// tuple_indices<size_t...> accomplishes this. It will be passed in to
-// 'invoke' as a parameter which will be ignored, but its type will force the
-// compiler to specialize 'invoke' appropriately.