Возможный дубликат:
Официально, для чего нужен typename?
Где и почему я должен ставить ключевые слова template и typename?рассмотрим код ниже:
template
class C { struct P {}; vector vec; void f(); }; template
void C ::f() { typename vector ::iterator p = vec.begin(); }
Почему ключевое слово "typename" необходимо в этом примере? Есть ли другие случаи, когда необходимо указывать "typename"?