我有一堂课:
template <class EventType = SFAEvent>
class SFAEventDispatcher {
SFALinkedList<SFACallback<EventType> > callbacks[size];
void dispatch(EventType &e) {
...
SFALinkedList<SFACallback<EventType> >::iterator iter = callbacks[e.type].begin;
...
};
}
我正在使用带有迭代器的 LinkedList 定义为:
template <typename Type>
class SFALinkedList {
public:
typedef SFALinkedListIterator<SFASinglyElement<Type> > iterator;
}
问题是:
如果我使用:
SFALinkedList<SFACallback<EventType> >::iterator iter;
EventType 在模板中定义,不起作用,但如果我使用:
SFALinkedList<SFACallback<SFAEvent> >::iterator;
SFAEvent 是一个类,工作;
我的链接列表示例:
SFALinkedList<float> list;
list.append(1.1);
list.append(2.2);
list.append(3.3);
list.append(4.4);
for(SFALinkedList<float>::iterator inter = list.begin(); inter.hasNext(); inter.next()) {
//print inter.current();
}
如何使用 SFAEventDispatcher 类模板中定义的 EventType 作为链接列表的模板参数传递?