Heim > Backend-Entwicklung > C++ > Hauptteil

Warum fehlt „std::stoi' in MinGW? Ein Blick auf das zugrunde liegende Problem und eine mögliche Lösung.

Mary-Kate Olsen
Freigeben: 2024-11-02 15:28:02
Original
135 Leute haben es durchsucht

Why is `std::stoi` Missing in MinGW? A Look at the Underlying Problem and a Possible Solution.

std::stoi-Fehler in MinGW: Ein Abhängigkeitsdilemma

Kompilierung mit std::stoi in MinGW nicht möglich? Finden Sie den überraschenden Grund und eine mögliche Problemumgehung heraus.

Problem:

Versuche, Funktionen wie std::stoi zu verwenden, lösen Fehler in MinGW mit gcc 4.6.1 aus, insbesondere „ Fehler: „stoi“ ist kein Mitglied von „std“. Diese Funktionen gibt es in neueren Versionen der GNU Standard Library (GSL), aber warum nicht in MinGW?

Antwort:

Der Übeltäter ist eine nicht standardmäßige Deklaration unter Windows. GSL definiert _GLIBCXX_HAVE_BROKEN_VSWPRINTF auf dieser Plattform, wodurch die Konvertierungsfunktionen std::stoi und andere deaktiviert werden.

Problemumgehung:

Eine mögliche Lösung besteht darin, die GSL-Header-Dateien zu ändern. Entfernen Sie das Makro !definiert(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) aus Zeile 2754 von .../lib/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, die auf std::vswprintf verweisen.

Auswirkungen:

Diese Problemumgehung deaktiviert std::to_wstring-Funktionen, lässt aber zu Verwendung anderer Konvertierungsfunktionen. Beachten Sie, dass es sich hierbei um eine nicht standardmäßige Änderung handelt und unvorhergesehene Folgen haben kann.

Das obige ist der detaillierte Inhalt vonWarum fehlt „std::stoi' in MinGW? Ein Blick auf das zugrunde liegende Problem und eine mögliche Lösung.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!