Код: Выделить всё
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
Код: Выделить всё
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
Перейдите в Project -> Properties -> C/C++ General -> Препроцессор включает пути, макросы и т. д. -> Поставщики -> CDT В настройках компилятора GCC отключите параметр Использовать глобальный поставщик, общий для всех проектов, и добавьте аргумент командной строки -std=c++11.
и перестроить индекс, но это не сработало.
Какие настройки в Eclipse мне не хватает? И почему ошибка возникает только в более сложном операторе с вектором, хотя оба оператора используют функцию make_shared.
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-analysis