Heim >Backend-Entwicklung >C++ >Warum existiert „std::stoi' in MinGW mit gcc 4.6.1 nicht?

Warum existiert „std::stoi' in MinGW mit gcc 4.6.1 nicht?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 05:54:30268Durchsuche

Why Does `std::stoi` Not Exist in MinGW with gcc 4.6.1?

std::stoi existiert nicht in MinGW

Beim Kompilieren eines Programms mit std::stoi auf MinGW mit gcc 4.6.1, Möglicherweise wird eine Fehlermeldung angezeigt, die besagt, dass „std::stoi kein Mitglied von ‚std‘ ist“. Dies tritt auf, obwohl die Funktion in neueren Versionen von gcc verfügbar ist.

Die Ursache:

MinGWs nicht standardmäßige Deklaration der vswprintf-Funktion definiert das Makro _GLIBCXX_HAVE_BROKEN_VSWPRINTF, das die deaktiviert Konvertierungsfunktionen, einschließlich std::stoi.

Problemumgehung:

Ändern Sie die in MinGW enthaltenen Header-Dateien, indem Sie das Makro in Zeile 2754 von .../lib auskommentieren /gcc/mingw32/4.6.1/include/c /bits/basic_string.h. Fügen Sie außerdem das Makro wieder in den Zeilen 2905 bis 2965 hinzu, mit Ausnahme der Verweise auf std::vswprintf. Diese Problemumgehung aktiviert zwar die Konvertierungsfunktionen, verhindert jedoch die Verwendung von std::to_wstring-Funktionen.

Das obige ist der detaillierte Inhalt vonWarum existiert „std::stoi' in MinGW mit gcc 4.6.1 nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn