error: expected `;’ before ‘itr’
template <class T> // or template <typename T> class A { public: A() {} ~A() {} void aaa() { std::list<T> aList; ... std::list<T>::iterator itr = aList.begin(); for( ; itr != aList.end(); ++itr ) { ... } } };
이와 같은 경우 다음과 같은 error가 발생할 수 있다.
error: expected `;’ before ‘itr’
모호한 data type으로 인해 발생하는 error이며,
해결책은…
std::list<T>::iterator itr = aList.begin();
를 다음과 같이 바꾸어 주면 된다.
class std::list<T>::iterator itr = aList.begin();
또는
typename std::list<T>::iterator itr = aList.begin();