Why is std::stoi not working with MinGW 4.6.1 on Windows?
Oct 30, 2024 am 09:29 AMCompilation Error with std::stoi in MinGW 4.6.1
When attempting to compile a program using std::stoi in MinGW 4.6.1, an error message indicating that 'stoi' is not a member of 'std' may appear. This issue stems from a non-standard declaration of vswprintf on Windows.
Cause of the Issue
The GNU Standard Library defines the macro _GLIBCXX_HAVE_BROKEN_VSWPRINTF on Windows, which disables the conversion functions, including std::stoi. This macro is enabled when using MinGW on Windows due to an issue with vswprintf on that platform.
Resolving the Issue
To resolve this issue, consider the following workaround:
-
Modify MinGW Header Files (Not Recommended):
- Remove the !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) macro on line 2754 of .../lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h.
- Add the macro back around lines 2905 to 2965, which reference std::vswprintf.
This modification will disable the std::to_wstring functions, but other conversion functions should become available.
Additional Information
- For more details on the issue, refer to the GNU Bugzilla report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522.
- This workaround may not be suitable for all users and should be implemented with caution.
The above is the detailed content of Why is std::stoi not working with MinGW 4.6.1 on Windows?. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

C language function format letter case conversion steps

What are the types of values returned by c language functions? What determines the return value?

What are the definitions and calling rules of c language functions and what are the

How does the C Standard Template Library (STL) work?

Where is the return value of the c language function stored in memory?

What is the minimum common multiple of the maximum common divisor of a c language function?
