首页 > 后端开发 > C++ > 为什么 std::stoi 无法在 Windows 上与 MinGW 4.6.1 配合使用?

为什么 std::stoi 无法在 Windows 上与 MinGW 4.6.1 配合使用?

Barbara Streisand
发布: 2024-10-30 09:29:27
原创
711 人浏览过

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

MinGW 4.6.1 中 std::stoi 编译错误

尝试在 MinGW 4.6 中使用 std::stoi 编译程序时.1 中,可能会出现一条错误消息,指示“stoi”不是“std”的成员。此问题源于 Windows 上 vswprintf 的非标准声明。

问题原因

GNU 标准库在 Windows 上定义了宏 _GLIBCXX_HAVE_BROKEN_VSWPRINTF,该宏会禁用转换函数,包括 std::stoi。在 Windows 上使用 MinGW 时,由于该平台上的 vswprintf 存在问题,会启用此宏。

解决问题

要解决此问题,请考虑以下解决方法:

  1. 修改 MinGW 头文件(不推荐):

    • 删除 .. 第 2754 行的 !define(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) 宏./lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h.
    • 将宏添加回第 2905 至 2965 行,引用 std::vswprintf。

    此修改将禁用 std::to_wstring 函数,但其​​他转换函数应该可用。

其他信息

  • 有关该问题的更多详细信息,请参阅 GNU Bugzilla 报告:http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522。
  • 此解决方法可能并不适合所有人用户应谨慎实施。

以上是为什么 std::stoi 无法在 Windows 上与 MinGW 4.6.1 配合使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板