Ключевое слово «auto» не работает должным образом в Eclipse во время анализа живого кода?C++

Программы на C++. Форум разработчиков
Anonymous
 Ключевое слово «auto» не работает должным образом в Eclipse во время анализа живого кода?

Сообщение Anonymous »

Я использую Eclipse с компилятором MinGW. У меня есть следующий фрагмент кода, который приводит к ошибке «Метод push_back не может быть разрешен», но, на удивление, код работает. Что еще более удивительно, я не получаю ошибку для указателя 'sp', обращающегося к членам класса. Но я снова получаю ошибку при использовании циклов for на основе диапазона, как показано с помощью p_elem

Код: Выделить всё

auto sp = std::make_shared();

auto spv1 = std::make_shared();

spv1->push_back(sp); // Method 'push_back' could not be resolved
sp->get_data(); // no error despite use of 'auto'

for (const auto &p_elem : *spv1)
p_elem->get_data() // Method 'get_data' could not be resolved
Если я явно определяю такие типы (кроме «sp»), я не получаю никаких ошибок.

Код: Выделить всё

auto sp = std::make_shared();

std::shared_ptr spv2 = std::make_shared();

spv2->push_back(sp); // no error
sp->get_data(); // no error

for (const std::shared_ptr &p_elem : *spv2)
p_elem->get_data() // no error
Похоже, возникла проблема с ключевым словом auto и анализом кода в реальном времени (поскольку код компилируется без ошибок и работает правильно, несмотря на неразрешенные сообщения). Я пробовал это решение. Несколько проблем, которые «не удалось решить», используя Eclipse с minGW

Перейдите в Project -> Properties -> C/C++ General -> Препроцессор включает пути, макросы и т. д. -> Поставщики -> CDT В настройках компилятора GCC отключите параметр Использовать глобальный поставщик, общий для всех проектов, и добавьте аргумент командной строки -std=c++11.

и перестроить индекс, но это не сработало.
Какие настройки в Eclipse мне не хватает? И почему ошибка возникает только в более сложном операторе с вектором, хотя оба оператора используют функцию make_shared.

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-analysis

Вернуться в «C++»