If given an array type, will return the type of an element in the array. If given a non-array type, simply returns the input.
typedef typename remove_bounds<T>::type Element;
typedef int IntArray[4]; typedef typename remove_bounds<IntArray>::type Int; Int has the type int.