以下代码会产生错误
std::string xyz="无论如何"; int x=1; xyz+=std::to_string(x); //这是为了将 xyz 从 whatever 变成 whatever1
我为什么要使用这种方法?因为准备好的语句不适用于我的 ubuntu 上的 mysql 版本(这个 mysql 版本有一个错误),并且我已经尝试并按照所有方法升级 mysql,但是唉!那么,我应该在哪里这样做
sql::preparedStatement* pstm=con->prepare_Statement("从 y 中选择 x,其中 a=?"); pstm->设置字符串(1,“xyz”);
我遇到了分段错误,上面出现了核心转储错误。这是我在 UBUNTU 中安装的 mySQL 版本中常见的错误。在尝试了所有升级 mysql 的方法后,我决定完全不使用准备好的语句。相反,我决定进行如下查询
std::string query="从 y 中选择 x 其中 a="; int x=5; 查询 + = std::to_string (x);
太棒了!g++ 版本不支持 C++11 功能,因此 to_string 不是 std 的一部分。我尝试了以下命令
sudo apt-get 更新 sudo apt-get 升级 g++
还没有运气。任何帮助都将不胜感激
PS,目前,我使用这种方法将整数与字符串连接起来
流 ss;ss但是,我不想仅仅因为无法更新 Ubuntu 的一个功能而不断切换,没人愿意这样。对吧?
答案1
g++ 确实支持 c++11,但它是实验性的,因此您必须使用选项启用它-std=gnu++11
。您不需要升级 g++,因为您已经在运行最新版本。
因此,你可以使用如下命令进行编译
g++ -std=gnu++11 ./source_file.cpp
您也可以尝试clang
编译器,因为它比 g++ 对 c++11 的支持更好。要安装它,请运行
sudo apt-get install clang-3.5