web-dev-qa-db-de.com

to_string nicht im Gültigkeitsbereich deklariert

Ich versuche, die Funktion to_string(NUMBER) wochenlang auf meinem Ubuntu-Computer zum Laufen zu bringen, aber sie funktioniert niemals in der QT-Umgebung oder anderswo. Mein Code funktioniert perfekt auf meinem Mac OSX, aber wenn ich ihn unter Ubuntu ausführe, beschwert er sich darüber, dass to_string ist nicht im Geltungsbereich deklariert. Alle mögliche Lösungen zu diesem würden sehr geschätzt. Ich habe versucht, den GCC-Compiler zu aktualisieren, aber das Problem wurde nicht behoben. Bitte helfen Sie.

Ich verwende QT Creator 4.8.1 und verwende C++ und die neueste Version von Ubuntu.

int Bint::operator*(int temp){
    Bint b(to_string(temp));
    return ((*this)*b);
}

Ich habe das QMAKE_CXXFLAGS + = -std = c ++ 0x in der Pro-Datei vermisst.

Es kann verschiedene Gründe geben, warum es bei Ihnen nicht funktioniert: Möglicherweise müssen Sie den Namen mit std:: Qualifizieren, oder Sie haben keine C++ 11-Unterstützung.

Dies funktioniert, vorausgesetzt, Sie haben C++ 11-Unterstützung:

#include <string>

int main()
{
  std::string s = std::to_string(42);
}

Um die C++ 11-Unterstützung mit g ++ oder clang zu aktivieren, müssen Sie die Option -std=c++0x Übergeben. Sie können -std=c++11 Auch für die neueren Versionen dieser Compiler verwenden.

19
juanchopanza

sie müssen die Datei mit c ++ 11-Unterstützung kompilieren

g++ -std=c++0x  -o test example.cpp
11
The Beast

Ich habe dieses Problem behoben, indem ich die erste Zeile in Application.mk von geändert habe

APP_STL := gnustl_static

zu

APP_STL := c++_static
3
MikeC

Sie müssen einige Änderungen im Compiler vornehmen. In Dev C++ Compiler: 1. Gehen Sie zu Compilereinstellungen/Compileroptionen. 2. Klicken Sie auf die Registerkarte Allgemein. 3. Aktivieren Sie das Kontrollkästchen (Fügen Sie beim Aufrufen des Compilers die folgenden Befehle hinzu. 4. Schreiben Sie -std = c ++ 11. 5. Klicken Sie auf OK

0
ashwani nagar