Possible Duplicate:
Where and why do I have to put the “template” and “typename” keywords?
I was looking through this boost::multi_array example and it has a typedef
such as:
template <typename Array>
...
typedef typename Array::template subarray<2>::type::iterator iterator2;
I understand what the
typedef typename <type> <new_type>;
signature looks like, but this has three things after the typedef typename
and I can't find online what that would be called or what it does. Can somebody break down what that typedef does and why it has three things? I don't think it's boost-specific.