Cygwin g++ std:: stoi "error: 'stoi не является членом' std
У меня есть:
-cygwin 1.7.25 на windows 7/32bit
-g++ --version → g++ (GCC) 4.8.2
-libstdС++. a → gcc-g++ - 4.8.2-1
Попробовал сделать С++
Hello World:
#include <string>
int main()
{
std::string s = "123";
int i = std::stoi(s);
}
компиляция дает:
$ g++ -std=c++11 main.cpp
main.cpp: In function ‘int main()’:
main.cpp:6:10: error: ‘stoi’ is not a member of ‘std’
int i = std::stoi(s);
Я искал часы, но я все еще не мог найти решение. В чем проблема?
Ответы
Ответ 1
Это ошибка, возможно, неполный порт некоторого кода библиотеки для cygwin (это функция cplusplus11) - некоторые вещи должны быть изменены в конце концов. Обязательно сообщите об этом.
Решение легко, конечно: #include <cstdlib> strtol(s.c_str(),0,10);
www.cplusplus.com/.../strtol
Аналогичная ошибка mingw упоминается также здесь
std:: stoi не существует в g ++ 4.6.1 на MinGW
Ответ 2
У меня такая же проблема вчера. "error: 'stoi' не является членом 'std'.
Сначала я убедился, что С++ 11 включен. Затем я обновил компилятор g++ до последней версии. После этого эта ошибка исчезла.
Ответ 3
Компилятор не воспринимается всерьез. В Windows лучше всего использовать визуальную студию, так как она всегда обновляется. Ошибка здесь в том, что макрос defs неправильный для начала. Проблема начинается с iomanip.h и iosbase. Поэтому они должны были бы изменить весь код. Для этого есть пользовательские исправления, но я бы не стал им доверять, поскольку они могут содержать еще больше ошибок, чем исходные копии. Но это зависит от вас, я просто придерживаюсь визуальной студии экспресс-издания.
Ответ 4
stoi работает только для mingw64 для меня.
Если вы используете Codeblocks, не забудьте проверить, установлен ли ваш компилятор проектов в mingw64.