В классе GCPtr объявляется функция findPtrinfo() с уровнем доступа private. Это функция ищет в списке gclist заданный адрес и возвращает индекс найденного элемента. Если адрес не найден, возвращается итератор, указывающий на конец списка. Эта функция используется внутри класса GCPtr для обновления значений счетчиков ссылок объектов, хранящихся в списке gclist. Далее приводится код ее реализации. // Находит указатель в списке gclist. template <class T, int size> typename list<GCInfo<T> >::iterator GCPtr<T, size>::findPtrInfo(T *ptr) { list<GCInfo<T> >::iterator p; // Находит ptr в gclist. for(p = gclist.begin(); p != gclist.end(); p++) if(p->memPtr == ptr) return p; return p; }
|