From: Marc D. <ma...@us...> - 2005-01-21 14:51:18
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30878/pclasses2/include/pclasses Modified Files: Signal.h Log Message: template related fixes for gcc 3.4.x. Index: Signal.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/Signal.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Signal.h 11 Jan 2005 14:50:52 -0000 1.3 +++ Signal.h 21 Jan 2005 14:51:10 -0000 1.4 @@ -97,11 +97,14 @@ template <typename RetType> class Signal0: public SignalBase0<RetType> { public: + typedef SignalBase0<RetType> BaseType; + + public: RetType fire() const { RetType ret = RetType(); - typename CallbackList::const_iterator i = _slots.begin(); - while(i != _slots.end()) + typename BaseType::CallbackList::const_iterator i = this->_slots.begin(); + while(i != this->_slots.end()) { ret = (*i)->exec(); if(ret) @@ -161,12 +164,14 @@ //! Signal with one argument template <typename RetType, typename ArgType1> class Signal1: public SignalBase1<RetType, ArgType1> { + typedef SignalBase1<RetType, ArgType1> BaseType; + public: RetType fire(ArgType1 arg1) const { RetType ret = RetType(); - typename CallbackList::const_iterator i = _slots.begin(); - while(i != _slots.end()) + typename BaseType::CallbackList::const_iterator i = this->_slots.begin(); + while(i != this->_slots.end()) { ret = (*i)->exec(arg1); if(ret) @@ -181,11 +186,13 @@ //! Signal with one arguments (void specialisation) template <typename ArgType1> class Signal1<void, ArgType1>: public SignalBase1<void, ArgType1> { + typedef SignalBase1<void, ArgType1> BaseType; + public: void fire(ArgType1 arg1) const { - typename CallbackList::const_iterator i = _slots.begin(); - while(i != _slots.end()) + typename BaseType::CallbackList::const_iterator i = this->_slots.begin(); + while(i != this->_slots.end()) { (*i)->exec(arg1); ++i; @@ -227,12 +234,14 @@ //! Signal with two arguments template <typename RetType, typename ArgType1, typename ArgType2> class Signal2: public SignalBase2<RetType, ArgType1, ArgType2> { + typedef SignalBase2<RetType, ArgType1, ArgType2> BaseType; + public: RetType fire(ArgType1 arg1, ArgType2 arg2) const { RetType ret = RetType(); - typename CallbackList::const_iterator i = _slots.begin(); - while(i != _slots.end()) + typename BaseType::CallbackList::const_iterator i = this->_slots.begin(); + while(i != this->_slots.end()) { ret = (*i)->exec(arg1, arg2); if(ret) @@ -247,11 +256,12 @@ //! Signal with two arguments (void specialisation) template <typename ArgType1, typename ArgType2> class Signal2<void, ArgType1, ArgType2>: public SignalBase2<void, ArgType1, ArgType2> { + typedef SignalBase2<void, ArgType1, ArgType2> BaseType; public: void fire(ArgType1 arg1, ArgType2 arg2) const { - typename CallbackList::const_iterator i = _slots.begin(); - while(i != _slots.end()) + typename BaseType::CallbackList::const_iterator i = this->_slots.begin(); + while(i != this->_slots.end()) { (*i)->exec(arg1, arg2); ++i; |