Вот почему вы не должны делать using namespace std;
. Избавьтесь от него и исправьте программу, поместив std::
перед всем в пространстве имен std
.
#include <iostream>
#include <string>
int main()
{
int stoi;
int number = 0;
std::string hex_string = "12345";
number = std::stoi(hex_string, 0, 16);
std::cout << "hex_string: " << hex_string << std::endl;
std::cout << "number: " << number << std::endl;
return 0;
}
Вы также можете просто переименовать ваше целое число stoi
, чтобы оно не конфликтовало с std::stoi
, но Настоятельно рекомендуется , чтобы в коде не было using namespace std;
.
Если вы вообще не можете использовать stoi
, потому что Visual Studio 2008 не поддерживает C ++ 11 и вы не можете перейти на более новую версию, см. здесь для альтернатив. Но, в конце концов, было бы лучше установить более новую IDE, если это возможно.