!一段代码无法通过编译…

求救!一段代码无法通过编译……templateclassTclassA{public:structAS{intx}ASf()}templateclassTA

求救!一段代码无法通过编译……
template   <class   T>
class   A   {
            public:
    struct   AS{
                          int   x;
                          }           ;
              AS     f();
};

template   <class   T>
A <T> ::AS   A <T> ::f()  
{   }

int   main()   {

}


[解决办法]
虽然是有一些编译器可以依据上下文推断出dependant names,不过对于dependant names最好还是养成写“typename”修饰的习惯,一般可以保管不出错。