Possible Duplicate:
Where and why do I have to put "template" and "typename" on dependent names?
I know only two cases where they are used (this is template parameter dependency i think but i don't know more than these two forms) :
- In parameter list i.e
<typename T>
- like
typename X::Sub_type Xx
So there are any more cases in general , or there is some theory behind all this?