首页 > 后端开发 > C++ > 正文

为什么 MinGW 中缺少 `std::stoi`?看看根本问题和可能的解决方案。

Mary-Kate Olsen
发布: 2024-11-02 15:28:02
原创
135 人浏览过

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

MinGW 中的 std::stoi 错误:依赖困境

无法在 MinGW 中使用 std::stoi 进行编译?找出令人惊讶的原因和潜在的解决方法。

问题:

尝试在带有 gcc 4.6.1 的 MinGW 中使用 std::stoi 等函数会触发错误,特别是“错误:“stoi”不是“std”的成员”。这些函数存在于更新版本的 GNU 标准库 (GSL) 中,但为什么 MinGW 中没有?

答案:

罪魁祸首是非标准声明在Windows中。 GSL 在此平台上定义了 _GLIBCXX_HAVE_BROKEN_VSWPRINTF,这会禁用 std::stoi 等转换函数。

解决方法:

可能的解决方案是修改 GSL 头文件。从 .../lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h 的第 2754 行删除 !define(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) 宏。此外,将宏添加回第 2905 至 2965 行,该宏引用 std::vswprintf。

含义:

此解决方法禁用 std::to_wstring 函数,但允许使用其他转换函数。请注意,这是非标准修改,可能会产生不可预见的后果。

以上是为什么 MinGW 中缺少 `std::stoi`?看看根本问题和可能的解决方案。的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!