to_string not declared in scope

2019-01-23 03:48发布

I am trying to make the to_string(NUMBER) function work in my Ubuntu computer for weeks but it never ever works in the QT environment or anywhere else. My code works perfectly on my Mac osx, but when I try running it in Ubuntu it complains that to_string is not declared in scope. Any solutions to this would be greatly appreciated. I have tried to update the gcc compiler but it didn't fix the problem. Please help.

I am using QT Creator 4.8.1 and I am using C++ and latest version of Ubuntu.

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

I was missing the QMAKE_CXXFLAGS += -std=c++0x in the pro file.

3条回答
smile是对你的礼貌
2楼-- · 2019-01-23 04:08

you must compile the file with c++11 support

g++ -std=c++0x  -o test example.cpp
查看更多
戒情不戒烟
3楼-- · 2019-01-23 04:13

There could be different reasons why it doesn't work for you: perhaps you need to qualify the name with std::, or perhaps you do not have C++11 support.

This works, provided you have C++11 support:

#include <string>

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

To enable C++11 support with g++ or clang, you need to pass the option -std=c++0x. You can also use -std=c++11 on the newer versions of those compilers.

查看更多
再贱就再见
4楼-- · 2019-01-23 04:17

I fixed this problem by changing the first line in Application.mk from

APP_STL := gnustl_static

to

APP_STL := c++_static
查看更多
登录 后发表回答