Maison > développement back-end > C++ > Pourquoi `std::stoi` est-il manquant dans MinGW ? Un regard sur le problème sous-jacent et une solution possible.

Pourquoi `std::stoi` est-il manquant dans MinGW ? Un regard sur le problème sous-jacent et une solution possible.

Mary-Kate Olsen
Libérer: 2024-11-02 15:28:02
original
201 Les gens l'ont consulté

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

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!

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