to_string未在范围中声明

Muh*_*reo 20 c++ ubuntu qt-creator

我试图让这个to_string(NUMBER)功能在我的Ubuntu计算机上运行数周,但它从未在QT环境或其他任何地方工作.我的代码在我的Mac osx上完美运行,但是当我尝试在Ubuntu中运行时,它会抱怨to_string未在范围内声明.任何解决方案都将非常感谢.我试图更新gcc编译器,但它没有解决问题.请帮忙.

我正在使用QT Creator 4.8.1,我正在使用C++和最新版本的Ubuntu.

int Bint::operator*(int temp){
    Bint b(to_string(temp));
    return ((*this)*b);
}
Run Code Online (Sandbox Code Playgroud)

我错过了pro文件中的QMAKE_CXXFLAGS + = -std = c ++ 0x.

jua*_*nza 20

可能有不同的原因导致它不适合您:也许您需要使用限定名称std::,或者您可能没有C++ 11支持.

如果你有C++ 11支持,这是有效的:

#include <string>

int main()
{
  std::string s = std::to_string(42);
}
Run Code Online (Sandbox Code Playgroud)

要使用g ++或clang启用C++ 11支持,您需要传递该选项-std=c++0x.您也可以-std=c++11在这些编译器的较新版本上使用.

  • 如果这个答案出了什么问题,我想知道我可以解决它. (4认同)

The*_*ast 11

您必须使用c ++ 11支持编译该文件

g++ -std=c++0x  -o test example.cpp
Run Code Online (Sandbox Code Playgroud)

  • @Frankenstein 我应该在哪里写“g++ -std=...”?我正在使用代码块。 (2认同)