Maison > développement back-end > C++ > le corps du texte

Pourquoi std::stoi ne fonctionne-t-il pas avec MinGW 4.6.1 sous Windows ?

Barbara Streisand
Libérer: 2024-10-30 09:29:27
original
672 Les gens l'ont consulté

Why is std::stoi not working with MinGW 4.6.1 on Windows?

Erreur de compilation avec std::stoi dans MinGW 4.6.1

Lors de la tentative de compilation d'un programme à l'aide de std::stoi dans MinGW 4.6 .1, un message d'erreur indiquant que 'stoi' n'est pas membre de 'std' peut apparaître. Ce problème provient d'une déclaration non standard de vswprintf sous Windows.

Cause du problème

La bibliothèque standard GNU définit la macro _GLIBCXX_HAVE_BROKEN_VSWPRINTF sous Windows, qui désactive le fonctions de conversion, y compris std::stoi. Cette macro est activée lors de l'utilisation de MinGW sous Windows en raison d'un problème avec vswprintf sur cette plate-forme.

Résolution du problème

Pour résoudre ce problème, envisagez la solution de contournement suivante :

  1. Modifier les fichiers d'en-tête MinGW (non recommandé) :

    • Supprimez la macro !définie(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) sur la ligne 2754 de .. ./lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h.
    • Ajoutez la macro autour des lignes 2905 à 2965, qui font référence à std::vswprintf.

    Cette modification désactivera les fonctions std::to_wstring, mais d'autres fonctions de conversion devraient devenir disponibles.

Informations supplémentaires

  • Pour plus de détails sur le problème, reportez-vous au rapport GNU Bugzilla : http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522.
  • Cette solution de contournement peut ne pas convenir à tous utilisateurs et doit être mis en œuvre avec prudence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal