Я хочу использовать std::stoi
, Хотя я мог бы использовать ::atoi(str.c_str())
это сделало бы код чище, если бы это работало. Но Затмение говорит мне:
Функция ‘Stoi’ не может быть решена
Я проверил это
<string>
Включено,std::string
,-std=c++0x -std=c++11
тоже установлено. Является stoi()
отсутствует в gcc, или это как-то моя вина?
Я использую gcc (Debian 4.7.2-4) 4.7.2.
Вы используете GCC 4.7.2, поэтому std::stoi
поддерживается. Вы можете игнорировать предупреждение Eclipse. Он должен скомпилироваться и работать нормально. Проблема в редакторе Eclipse, а не в GCC.
(Вам нужно только -std=c++11
или же -std=gnu++11
[также получить расширения GCC], кстати. -std=c++0x
это просто устаревший синоним.)
Вы можете избавиться от красных загогулинов в затмении, (из Вот):
Свойства проекта-> Общие сведения о C / C ++ -> Включение путей в препроцессор, Макросы -> вкладка [Поставщики] -> поставщик настроек встроенного компилятора (зависит от цепочки инструментов).
Нажмите на ссылку «Настройки рабочего пространства», чтобы перейти на страницу свойств «Настройки», снова выберите вкладку [Обнаружение] и своего провайдера. Есть «Команда для получения спецификаций компилятора», добавьте туда «-std = c ++ 11».
нажмите применить и закройте все, затем index-> rebuild и у вас все будет готово.
Или, если ваша версия Eclipse старше, возможно, вам просто нужно сделать это:
Проект-> Свойства-> Сборка C / C ++-> Параметры обнаружения-> Компилятор GCC C ++
и добавьте флаг «-std = c ++ 11» к аргументам вызова там. Это «не рекомендуется», поэтому вы можете рассмотреть возможность обновления Eclipse, так как вы также обновляете свой компилятор.