Erreur std::stoi dans MinGW : un dilemme de dépendance
Impossible de compiler en utilisant std::stoi dans MinGW ? Découvrez la raison surprenante et la solution de contournement potentielle.
Problème :
Les tentatives d'utilisation de fonctions telles que std::stoi déclenchent des erreurs dans MinGW avec gcc 4.6.1, en particulier " erreur : 'stoi' n'est pas membre de 'std'". Ces fonctions existent dans les versions plus récentes de la GNU Standard Library (GSL), mais pourquoi pas dans MinGW ?
Réponse :
Le coupable est une déclaration non standard sous Windows. GSL définit _GLIBCXX_HAVE_BROKEN_VSWPRINTF sur cette plateforme, ce qui désactive les fonctions de conversion std::stoi et autres.
Solution de contournement :
Une solution possible consiste à modifier les fichiers d'en-tête GSL. Supprimez la macro !définie(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) de la ligne 2754 de .../lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h. De plus, ajoutez la macro autour des lignes 2905 à 2965, qui font référence à std::vswprintf.
Implications :
Cette solution de contournement désactive les fonctions std::to_wstring mais autorise le utilisation d'autres fonctions de conversion. Notez qu'il s'agit d'une modification non standard et peut avoir des conséquences imprévues.
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!