C++ Version

Rene42

Erfahrenes Mitglied
Hallo,

erstmal zur Info. Ich verwende Code Block 13.12 unter Windows 8. Ist die Frage dumm nicht hauen ich bin noch neu bei C++. Aber in aller Regel herrscht hier ja Weisheit und Geduld vor ;)

Also ich habe einen Double Wert den ich nach String konvertieren will. Dazu habe ich auch gleich http://www.cplusplus.com/reference/string/to_string/ was gefunden. Sah für mich sehr perfekt aus, außer das mein Compiler das so nicht wollte, d. h. er konnte die Funktion nicht finden. Ich verwendete folgenden Code:

Code:
#include <iostream>
#include <string>

using namespace std;

int main()
{

    double Test = 2.36;

    string StrTest = To_String(Test);

    cout << StrTest;

    return 0;
}

Weiter las ich dann dort, dass die Funktion erst mit dem C++11 eingeführt worden ist. Ist also vielleicht meine String.h zu alt? Wie könnte ich das prüfen? Wo bekomme ich dann eine aktuellere Datei her?
Oder am einfachsten nur ein Totalausfall bei mir.....
 
Hallo Rene,

der Funktionsname ist klein geschrieben: std::to_string() bzw. to_string() (wenn du den Namespace std bereits eingebunden hast).

Wenn das nicht klappt: Welchen Compiler verwendest du? Code::Blocks ist nur eine IDE, d. h. eine Entwicklungsumgebung, die mit vielen Compilern funktioniert. (Kleine Einräumung: Code::Blocks wird in der Tat mit MinGW [einem Compiler] in einem Bundle als Download angeboten, sodass es wirklich IDE + Compiler im weiteren Sinne sind. Aber im Prinzip bist du an diesen Compiler nicht gebunden.)
 
Ergänzung:
Halbwegs aktuelle Versionen von MinGW haben überhaupt kein Problem mit C++11
(und ich vermute einmal, dass Codeblocks nicht total veraltete Versionen mitliefert)

Und hier nicht relevant, aber die Includes "string.h" von C und "string" von C++ sind sehr unterschiedlich
 
Hallo,

erstmal danke für die schnellen Antworten.

Habe die Groß/Kleinschreibung in meinem Programm angepasst. Leider kennt er die Funktion trotzdem nicht. Ich benutze den Compiler "GNU GCC Compiler". Sollte doch in Ordnung sein oder? Einen der wie MinGW konnte ich jetzt nicht finden.

Noch einer eine Idee?
 
GCC gibts (mit dem Namen) nicht für Windows. Die für Windows angepasste Version heißt MinGW (bzw. eine der zwei Möglichkeiten), allerdings steht an verschiedenen Stellen trotzdem GCC. Also, du hast MinGW.

Ist das Nichtfinden die einzige Fehlermeldung? Bzw. wie lautet die Meldung genau?
 
Hallo Rene42,
ich könnte mir vorstellen, dass du das Compiler-Flag "-std=c++11" nicht gesetzt hast. Geh mal auf Project->Build options->Compiler Flags und such in der Liste nach "Have g++ follow the C++11 ISO C++ language standard". Das müsste das 10te Element von oben sein.

Funktioniert's dann, oder meckert er noch?

Witzig dass es noch keine C++14 Option gibt^^ :D

Gruß Technipion
 
Habe ich gleich mal ausprobiert. War bei mir tatsächlich nicht ausgewählt. Macht aber leider keinen Unterschied die Fehlermeldung bleibt bestehen.

Ich habe gerade mal in meinen Ordner CodeBlocks geschaut in dem dies Installiert wurde. Habe dort im Ordner MinGW einen Ordner include gefunden und dort die Datei "string.h". Mache ich diese auf finde ich dortdrin nicht die Funktion "to_string". Hier sollte die Funktion doch definiert werden oder?
 
Ja ist ja wahr. Mein Fehler das ich dies wieder verwechselt habe.

Aber auch wenn ich in string ohne Dateierweiterung nachsehe "....CodeBlocks\MinGW\lib\gcc\mingw32\4.7.1\include\c++" kann ich die Funktion to_string über die Suche nicht finden.
 
Zurück