Heim  >  Artikel  >  Backend-Entwicklung  >  Warum ist „stoi“ beim Kompilieren mit MinGW 4.6.1 kein Mitglied von „std“?

Warum ist „stoi“ beim Kompilieren mit MinGW 4.6.1 kein Mitglied von „std“?

Susan Sarandon
Susan SarandonOriginal
2024-10-29 05:55:02324Durchsuche

Why is

std::stoi-Problem in MinGW 4.6.1

Der Fehler „Fehler: ‚stoi‘ ist kein Mitglied von ‚std‘‘ " beim Kompilieren mit MinGW 4.6.1 beruht auf einer nicht standardmäßigen Deklaration von vswprintf unter Windows.

Erklärung:

Die GNU-Standardbibliothek definiert dazu das Makro _GLIBCXX_HAVE_BROKEN_VSWPRINTF Plattform. Dieses Makro deaktiviert bestimmte Konvertierungsfunktionen, einschließlich std::stoi.

Problemumgehung:

Um dieses Problem zu umgehen, sollten Sie die mit MinGW verteilten Header-Dateien ändern:

  1. Entfernen Sie das !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)-Makro in Zeile 2754 von .../lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h.
  2. Re -Fügen Sie das Makro um die Zeilen 2905 bis 2965 hinzu, die auf std::vswprintf verweisen.

Folgen:

Diese Problemumgehung deaktiviert std::to_wstring-Funktionen, lässt aber zu weitere Konvertierungsfunktionen verfügbar sein.

Das obige ist der detaillierte Inhalt vonWarum ist „stoi“ beim Kompilieren mit MinGW 4.6.1 kein Mitglied von „std“?. 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