0
Why is there a class word near T in template definition?
it's kind of confusing that class is also used to declare classes...
1 Answer
0
Maybe that's why they have introduced the keyword "typename".
e.g.:
template <typename T>
void foo()
{
//...
}
To answer "why" in your question, Stroustrup has originally decided to use the same keyword in order to minimize number of reserved keywords. However the C++ committee has finally decided to add this new keyword to avoid possible confusions.
P.S:
The same keyword is used to declare that a dependent name is a type.
Read more on that here: http://en.cppreference.com/w/cpp/language/dependent_name