У меня есть следующая тестовая программа:
#include <string>
int main(int argc, char* argv[]) {
try {
return std::stoi("3000127232");
}
catch (...) {
return 0;
}
}
Когда я компилирую это в Ubuntu с C ++ 11 и запускаю код, я получаю возвращаемое значение 0. Это то, что я ожидаю, потому что значение в строке выходит за пределы диапазона.
Но когда я компилирую его для rasperry-buildroot 18.11, я могу запустить программу на rasperry, но у меня возникает ошибка. Этого я не ожидаю.
Есть ли другое решение для преобразования строк в целые (без ошибок по умолчанию, когда они находятся вне диапазона), или у кого-то есть другая идея?