私は1つのクラスを持っています:
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 を使用して、リンクされたリストのテンプレートの引数として渡すにはどうすればよいですか?