1. ホーム
  2. c++

[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)

2022-01-27 04:23:51

質問

私は、単語をランダムにフラッシュさせて意味を覚える小さな単語帳プログラムを作っています。Bjarne Stroustroupが教えてくれたように、標準的なC++ライブラリを使いたいのですが、開始早々、一見奇妙な問題に遭遇しています。

を変更したいのですが long の整数を std::string ファイルに保存できるようにするためです。私が採用したのは to_string() を使用します。問題は、g++ (その --version フラグにあるようにバージョン 4.7.0) でコンパイルすると、こうなることです。

PS C:\Users\Anurag\SkyDrive\College\Programs> g++ -std=c++0x ttd.cpp
ttd.cpp: In function 'int main()':
ttd.cpp:11:2: error: 'to_string' is not a member of 'std'

このエラーを出す私のプログラムは

#include <string>

int main()
{
    std::to_string(0);
    return 0;
}

しかし、msdnのライブラリは とはっきり書いてあります。 が存在し 以前の質問 Stack Overflow によると (g++ バージョン 4.5 の場合)、この機能を有効にするためには -std=c++0x フラグを使用しています。私は何を間違えているのでしょうか?

解決方法を教えてください。

MinGWでは既知のバグです。 関連するBugzilla . コメント欄には パッチ を使えば、MinGWで動作させることができます。

で提供される GCC 4.8.0 よりも上位の MinGW-w64 ディストロでは、この問題は修正されています。 MinGW-w64プロジェクト . このプロジェクトは、名前に反して、32ビットと64ビット用のツールチェインを提供しています。その Nuwen MinGWディストロ もこの問題を解決しています。