template < template-parameter-list > declaration
------
class Outter
{
public:
// First inner class:
template<class T> class Inner1
{
};
// Second Inner class:
class Inner2
{
public:
// Method definition:
Outter* Inner1()
{
}
};
};
-----
Now, I don't know why does GCC allow creation of template without template list, nor if this is a standard, but IMHO VC++ is doing it the right way.
Template requires template parameter list, otherwise it is not a template, just a class and template keyword sould be removed (or does GCC just ignore it?).