Maison  >  Article  >  développement back-end  >  Pourquoi \'stoi\' n'est-il pas membre de \'std\' lors de la compilation avec MinGW 4.6.1 ?

Pourquoi \'stoi\' n'est-il pas membre de \'std\' lors de la compilation avec MinGW 4.6.1 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-29 05:55:02385parcourir

Why is

std::stoi Problème dans MinGW 4.6.1

L'erreur "erreur : 'stoi' n'est pas membre de 'std' " lors de la compilation avec MinGW 4.6.1 provient d'une déclaration non standard de vswprintf sous Windows.

Explication :

La bibliothèque standard GNU définit la macro _GLIBCXX_HAVE_BROKEN_VSWPRINTF sur ce plate-forme. Cette macro désactive certaines fonctions de conversion, notamment std::stoi.

Solution de contournement :

Pour contourner ce problème, pensez à modifier les fichiers d'en-tête distribués avec MinGW :

  1. 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.
  2. Re -ajoutez la macro autour des lignes 2905 à 2965, qui font référence à std::vswprintf.

Conséquences :

Cette solution de contournement désactive les fonctions std::to_wstring mais permet d'autres fonctions de conversion seront disponibles.

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!

Déclaration:
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