我试图让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);
}
我在pro文件中缺少QMAKE_CXXFLAGS + = -std = c ++ 0x。
答案 0 :(得分:19)
可能有不同的原因导致它不适合您:或许您需要使用std::
限定名称,或者您可能没有C ++ 11支持。
如果你有C ++ 11支持,这是有效的:
#include <string>
int main()
{
std::string s = std::to_string(42);
}
要使用g ++或clang启用C ++ 11支持,您需要传递选项-std=c++0x
。您还可以在这些编译器的较新版本上使用-std=c++11
。
答案 1 :(得分:11)
您必须使用c ++ 11支持
编译该文件g++ -std=c++0x -o test example.cpp
答案 2 :(得分:3)
我通过更改 Application.mk 中的第一行来解决此问题。
APP_STL := gnustl_static
到
APP_STL := c++_static
答案 3 :(得分:1)
如上面正确识别的,此错误是由于编译器未使用c ++ 11或更高版本。此答案适用于 Windows 10 。
对于代码块版本17中的c ++ 11和更高标准支持:
点击工具栏中的设置。
出现一个下拉菜单。选择编译器选项。
选择全局编译器设置。
在第二部分此新窗口的工具栏中,选择编译器设置。
然后在工具栏下方选择编译器标记选项。
展开常规标签。检查您希望编译器遵循的 C ++标准。
单击确定。
面向那些试图在Sublime文本中获得C ++ 11支持的人。
下载 mingw编译器版本7 或更高版本。在低于此版本的版本中,使用的默认c ++标准为c ++ 98,而在高于7的版本中,使用的默认标准为c ++ 11。
将文件夹复制到C主驱动器中。它应该不位于C驱动器的任何其他文件夹中。
将文件夹重命名为MinGW 。该名称不区分大小写,因此它应该是mingw的任何变体,并且名称中不得包含任何其他字符。
然后转到环境变量并编辑路径变量。添加此“ C:\ mingw \ bin ”,然后单击“确定”。
您可以通过键入g++ -v
来检查cmd中的g ++版本。
这足以在崇高的文本中启用c ++ 11。
如果您也想从输入文件中获取输入和输出以进行竞争性编程,请遵循此link。
答案 4 :(得分:0)
您需要在编译器中进行一些更改。 在Dev C ++编译器中: 1.转到编译器设置/编译器选项。 2.单击常规选项卡 3.选中复选框(在调用编译器时添加以下命令。 4.写-std = c ++ 11 5.点击确定
答案 5 :(得分:-1)
//Try this if you can't use -std=c++11:-
int number=55;
char tempStr[32] = {0};
sprintf(tempStr, "%d", number);