如下代码段在Windows下是完全没有问题的,但是在Linux下用GCC编译却是会报错的。 list<T> m_list; std::list<T>::iterator it_head = m_list.begin(); 改成如下代码段后,在Linux下就可以编译通过了。 list<T> m_list; class std::list<T>::iterator it_head = m_list.begin(); 差别就在于:在Linux中声明迭代器时需要在开头加入class关键字。