To_string не объявлено в области

Я пытаюсь заставить функцию to_string(NUMBER) работать на моем компьютере Ubuntu в течение нескольких недель, но никогда не работает в среде QT или где-либо еще. Мой код отлично работает на моем Mac OSX, но когда я пытаюсь запустить его в Ubuntu, он жалуется, что to_string не объявлен в области видимости. Любые решения для этого были бы весьма полезны. Я попытался обновить компилятор gcc, но это не устранило проблему. Пожалуйста помоги.

Я использую QT Creator 4.8.1, и я использую С++ и последнюю версию Ubuntu.

int Bint::operator*(int temp){
    Bint b(to_string(temp));
    return ((*this)*b);
}

Мне не хватало QMAKE_CXXFLAGS + = -std = С++ 0x в файле pro.

Ответы

Ответ 1

Могут быть разные причины, по которым это не сработает для вас: возможно, вам нужно квалифицировать имя с помощью std::, или, возможно, у вас нет поддержки на С++ 11.

Это работает, если у вас есть поддержка на С++ 11:

#include <string>

int main()
{
  std::string s = std::to_string(42);
}

Чтобы включить поддержку С++ 11 с помощью g++ или clang, вам необходимо передать опцию -std=c++0x. Вы также можете использовать -std=c++11 в новых версиях этих компиляторов.

Ответ 2

вы должны скомпилировать файл с поддержкой С++ 11

g++ -std=c++0x  -o test example.cpp

Ответ 3

Я исправил эту проблему, изменив первую строку в Application.mk из

APP_STL := gnustl_static

к

APP_STL := c++_static

Ответ 4

Вам нужно внести некоторые изменения в компилятор. В Dev C++ Compiler: 1. Перейдите в настройки компилятора/Опции компилятора. 2. Нажмите на вкладку "Общие". 3. Установите флажок (добавьте следующие команды при вызове компилятора. 4. напишите -std = C++ 11 5. нажмите Ok