为何编译器认不出来定义的class

为什么编译器认不出来定义的class
我写了一个类Move,使用STL里面的stack

stack<Move> Moves;

编译后出现error:尖括号里面的东西不是一个类型名

然后我typedef Move abc;

stack<abc> Moves;

没问题了,这到底是怎么回事啊?


------解决方案--------------------
太神奇,帖代码吧!