«Объявление члена не найдено» во вложенном шаблонном классе в C ++

0

Я написал небольшой класс шаблонов в C++, представляющий очередь приоритетов. Тем не менее, я продолжаю получать "Объявление участника не найден" для всех написанных мной функций, которые являются частью вложенного класса внутри класса PriorityQueue, который должен возвращать новый экземпляр этого же объекта.

Сегмент проблемного кода следующий:

template<typename PriorityType, typename DataType>
class PriorityQueue<PriorityType, DataType>::iterator {
public:
    // Default constructor
    iterator(ElementType& element) : m_element(&element) {}

    // Operator overloads
    DataType& operator*() const;
    IteratorType operator+(const IteratorType& other) const;
    iterator& operator++();
    iterator operator++(int);
    bool operator==(const iterator& it) const;
    bool operator!=(const iterator& it) const;
};

// Prefix Increment (++i) operator overload
template<typename PriorityType, typename DataType>
typename PriorityQueue<PriorityType, DataType>::iterator& PriorityQueue<
    PriorityType, DataType>::iterator::operator++() {
    this->m_element =
            (PriorityQueueElement<PriorityType, DataType>) *(this->m_element).m_next;
    return *this;
}

В этом случае Eclipse отображает ошибку "Member declare not found" для перегрузки operator++, даже если она определена в общедоступной части класса.

В чем проблема?

ПРИМЕЧАНИЕ. Это только часть кода, все типы, которые не объявлены в этом сегменте кода, определены в исходном файле.

  • 3
    Компилируется ли код? Я не могу сказать, спрашиваете ли вы об ошибке компилятора или просто сообщении Eclipse.
  • 1
    Ваш PriorityQueue<...> объявляет вложенный iterator класса? Почему только предварительная декларация?
Показать ещё 4 комментария
Теги:
class
templates

1 ответ

0
Лучший ответ

Увидев, как пользователь xyz смог написать рабочий пример на ideone.com, это, вероятно, временная ошибка, которая должна исчезнуть, когда все скомпилируется и работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню