Como faço para atualizar meu g ++, os recursos do C ++ 11 não funcionam [duplicados]

0

o seguinte código gera erro

std::string xyz="whatever";
int x=1;
xyz+=std::to_string(x);
//this is supposed to turn xyz into whatever1 from whatever

Por que estou usando essa abordagem? Porque instruções preparadas não estão funcionando com a versão do mysql no meu Ubuntu (há um bug com esta versão do mysql), e eu tentei e segui tudo para atualizar o mysql, mas ai! Então, onde eu deveria fazer isso

sql::preparedStatement* pstm=con->prepare_Statement("select x from y where a=?");
pstm->setString(1,"xyz");

Estou recebendo uma falha de segmentação, erro de dump principal acima. É um erro comum com a versão do mySQL que tenho em UBUNTU. Depois de tentar tudo o que pude para atualizar o mysql, decidi não usar instruções preparadas. Em vez disso, decidi fazer perguntas como

std::string query="select x from y where a=";
int x=5;
query+=std::to_string(x);

E KUDOS! A versão g ++ não suporta os recursos do C ++ 11 e, portanto, to_string não faz parte do std. Eu tentei os seguintes comandos

sudo apt-get update
sudo apt-get upgrade g++

Sem sorte ainda. Qualquer ajuda será muito apreciada

PS, por enquanto, estou usando essa abordagem para concatenar inteiros com string

sstream ss; ss

Mas, eu não quero apenas continuar trocando de jeito, porque eu não posso atualizar um recurso sangrento do Ubuntu, ninguém quer isso. Certo?

    
por shahab uddin 07.03.2015 / 17:22

1 resposta

0

O

g ++ suporta o c ++ 11, mas é experimental, portanto você tem que ativá-lo com a opção -std=gnu++11 . Você não precisa atualizar o g ++, você não pode, porque você já está executando a versão mais recente.

Então você irá compilar usando um comando como

g++ -std=gnu++11 ./source_file.cpp

Você também pode tentar o compilador clang , já que ele tem melhor suporte para c ++ 11 que g + +. Para instalá-lo, execute

sudo apt-get install clang-3.5

Leia Status do suporte experimental do C ++ 11 no GCC 4.8 e C ++ Suporte no Clang .

    
por Registered User 08.03.2015 / 06:40