首頁 >後端開發 >C++ >為什麼使用 gcc 4.6.1 的 MinGW 中不存在 `std::stoi` ?

為什麼使用 gcc 4.6.1 的 MinGW 中不存在 `std::stoi` ?

Linda Hamilton
Linda Hamilton原創
2024-10-29 05:54:30267瀏覽

Why Does `std::stoi` Not Exist in MinGW with gcc 4.6.1?

MinGW 中不存在std::stoi

使用gcc 4.6.1 在MinGW 上使用std::stoi 編譯程式時,可能會出現一條錯誤訊息,指出「std::stoi 不是'std'的成員」。儘管該函數在較新版本的 gcc 中可用,但仍會發生這種情況。

原因:

MinGW 對 vswprintf 函數的非標準宣告定義了巨集 _GLIBCXX_HAVE_BROKEN_VSWPRINTF,該巨集停用轉換函數,包括 std::stoi。

解決方法:

透過註解掉.../lib 第2754 行的巨集來修改MinGW 包含的頭檔/gcc/mingw32/4.6.1/ include/c /bits/basic_string.h。此外,將巨集新增回第 2905 行到第 2965 行附近,不包括對 std::vswprintf 的參考。雖然此解決方法啟用了轉換函數,但它阻止使用 std::to_wstring 函數。

以上是為什麼使用 gcc 4.6.1 的 MinGW 中不存在 `std::stoi` ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn