作者littleshan (我要加入剑道社!)
看板C_and_CPP
标题Re: [问题] template list<T>iterator
时间Fri Jun 12 11:07:42 2009
※ 引述《qazq (...)》之铭言:
: private:
: std::list <T> m_lst;
: std::list <T>::iterator m_itor; <--- 加了这行就 build fail 了
typename std::list<T>::iterator m_itor;
: public:
: ----------------
: error C2146: 语法错误 : 遗漏 ';' (在识别项 'm_itor' 之前)
: 请问是为什麽呢?
: 谢谢大家!
因为在对 template 进行 parse 时,compiler 不知道 T 是什麽,
也无法推断 list<T>::iterator 到底是个型别,亦或只是 list<T>
底下的 static member。加上 typename 关键字可以告诉 compiler
说:这边的 iterator 是一个型别,这样才能正确 parse。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.87.151.2
1F:→ qazq:嗯嗯嗯!可以了!谢谢你! :) 06/12 11:24