ホームページ  >  記事  >  バックエンド開発  >  MinGW 4.6.1 でコンパイルすると、「stoi」が「std」のメンバーにならないのはなぜですか?

MinGW 4.6.1 でコンパイルすると、「stoi」が「std」のメンバーにならないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-29 05:55:02324ブラウズ

Why is

std::stoi MinGW 4.6.1 の問題

エラー「エラー: 'stoi' は 'std' のメンバーではありません」 " MinGW 4.6.1 でコンパイルすると、Windows 上の vswprintf の非標準宣言が原因で発生します。

説明:

GNU 標準ライブラリは、これに対してマクロ _GLIBCXX_HAVE_BROKEN_VSWPRINTF を定義しています。プラットフォーム。このマクロは、std::stoi などの特定の変換関数を無効にします。

回避策:

この問題を回避するには、MinGW で配布されるヘッダー ファイルを変更することを検討してください:

  1. .../lib/gcc/mingw32/4.6.1/include/c /bits/basic_string.h.
  2. Re の 2754 行目で !define(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) マクロを削除します。 - std::vswprintf を参照する行 2905 ~ 2965 の周囲にマクロを追加します。

Consequences:

この回避策では、std::to_wstring 関数が無効になりますが、許可されます。他の変換関数も利用可能になります。

以上がMinGW 4.6.1 でコンパイルすると、「stoi」が「std」のメンバーにならないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。