Funzione ‘stof’ non può essere risolto

Non ho avuto questo problema, ma prima di trovare un lavoro in giro, solo che questa volta un lavoro non è un’opzione.

Sto cercando di usare il ‘stof’ funzione, ma io sono sempre errori dicendo:
‘stof’ non è un membro di ‘std’
Funzione ‘stof’ non può essere risolto

Io sto usando nel modo esatto se viene visualizzato in questa pagina:http://www.cplusplus.com/reference/string/stof/

E qui sono i miei comprende:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

Così, che cosa sto facendo di sbagliato? E se non si trova una soluzione potrebbe qualcuno indicarmi un altro modo per convertire la stringa a galleggiante e l’hanno generata un’eccezione se la stringa non era compatibile?

EDIT: l’Aggiornamento con il programma di esempio e di errori.

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()
{
   string testString = "";
   float testFloat = 0.0;
   testFloat = std::stof(testString);

   return 0;
}

Gli errori che ottengo sono:

Descrizione Risorsa Percorso Tipo Di Percorso
‘stof’ non è un membro di ‘std’ main.cpp /Assegnazione/src linea 33 C/C++ Problema

Descrizione Risorsa Percorso Tipo Di Percorso
Funzione ‘stof’ non può essere risolto main.cpp /Assegnazione/src linea 33 Errore Semantico

std::stof è nuovo standard C++11. Sei sicuro che stai usando C++11-compatibile compilatore?
Non so, io non sono troppo esperto di C++, ma ho “-std=c++11”, come uno dei miei comandi
Si potrebbe anche provare -stdlib=libc++
Nessuna fortuna con -stdlib=libc++ Nathan S, grazie comunque
Non stai per caso usando MinGW sei? C’è un aprire un bug report che potrebbe spiegare perché non funziona per voi.

InformationsquelleAutor Joseph Little | 2013-02-15

2 Replies
  1. 8

    Si utilizza stof correttamente. Questo è un bug noto in MinGW compilazione di gcc 4.7.2. Dovrebbe essere fissato per il gcc 4.8. Ci sono numerosi esempi sul MODO per convertire le stringhe in numeri. Ecco uno. Dovrete arrotolare per ottenere il comportamento dell’eccezione che si desidera, ma gli esempi che si dovrebbe ottenere iniziato.

    Ah, questo spiega tutto. Conosci qualche altro modo per convertire una stringa in un float e l’hanno generata un’eccezione se non sono compatibili?
    boost::lexical_cast genera un’eccezione in caso di errore.

    InformationsquelleAutor Michael Kristofik

  2. 9

    stof è un C++11 funzione. Assicurarsi che il compilatore supporta (non compilatore ha il pieno supporto per C++11 di sicurezza, anche se più moderni compilatori ora il supporto di una abbastanza grande sottoinsieme).

    Su g++, per esempio, è necessario attivarlo con il -std=c++11 opzione (std=c++0x pre g++-4.7).

    Se si utilizza g++, si prega di verificare la versione che stai utilizzando con g++ -v – se è una vecchia versione (4.2 come, per esempio, di c++11 funzionalità non saranno disponibili.

    Ho compilato con “-v” e ho trovato: la versione di gcc 4.7.2 (GCC) Nella generazione di report
    Appena testato con gcc 4.7.2, sicuramente funziona sia con -std=c++11 e -std=c++0x.

    InformationsquelleAutor Cubic

Lascia un commento