«Объявление члена не найдено» - ошибка, выданная инструментом статического анализа Eclipse ( codan ).Если вы получили эту ошибку, но компиляция прошла успешно, это ложное срабатывание.Известно, что более ранние версии этого инструмента дают некоторые ложные срабатывания, см., Например, этот отчет об ошибке .Поэтому я рекомендую обновить Eclipse CDT до самой последней версии.
Еще одна вещь, которая может вызвать эту ошибку, - это неразрешенное включение, которое не позволяет Eclipse правильно анализировать часть вашего кода.Выбор Index -> Search For Unresolved Includes
в контекстном меню проекта даст вам список неразрешенных включений.См. этот ответ для получения подробной информации о том, как его исправить.
Вот пример:
class C {
void f(std::vector<int>&);
};
void C::f(std::vector<int>&) {} // Member declaration not found
Приведенный выше пример вызывает ошибку «Объявление элемента не найдено» в Eclipse.CDT, даже если вы включили <vector>
, но не решены (из-за неправильно настроенных путей включения).