The following code example is taken from the book
C++ Templates - The Complete Guide
by David Vandevoorde and Nicolai M. Josuttis, Addison-Wesley, 2002
© Copyright David Vandevoorde and Nicolai M. Josuttis 2002
template<typename T, typename R>
template<typename T2, typename R2> inline
Array<T, A_Subscript<T, R, R2> >
Array<T, R>::operator[](Array<T2, R2> const& b) {
return Array<T, A_Subscript<T, R, R2> >
(A_Subscript<T, R, R2>(*this, b));
}