For templates I have seen both declarations:
template < typename T >
template < class T >
What\'s the difference?
And
While there is no technical difference, I have seen the two used to denote slightly different things.
For a template that should accept any type as T, including built-ins (such as an array )
template
class Foo { ... }
For a template that will only work where T is a real class.
template
class Foo { ... }
But keep in mind that this is purely a style thing some people use. Not mandated by the standard or enforced by compilers