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 を使用してコンパイルできませんか?驚くべき理由と潜在的な回避策を見つけてください。

問題:

std::stoi のような関数を使用しようとすると、gcc 4.6.1 で MinGW でエラーが発生します。特に "エラー: '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) マクロを削除します。さらに、std::vswprintf を参照する行 2905 ~ 2965 付近にマクロを追加し直します。

影響:

この回避策では、std::to_wstring 関数が無効になりますが、他の変換関数の使用。これは非標準的な変更であり、予期しない結果が生じる可能性があることに注意してください。

以上がMinGW に `std::stoi` がないのはなぜですか?根本的な問題と考えられる解決策を検討します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!