web-dev-qa-db-ja.com

to_stringがスコープ内で宣言されていません

私はUbuntuコンピューターでto_string(NUMBER)関数を数週間機能させようとしていますが、QT環境や他の場所では機能しません。私のコードはMacのosxで完全に動作しますが、Ubuntuで実行しようとするとto_stringはスコープ内で宣言されていません。これに対する解決策は大歓迎です。 gccコンパイラーを更新しようとしましたが、問題は修正されませんでした。助けてください。

QT Creator 4.8.1を使用しており、C++とUbuntuの最新バージョンを使用しています。

int Bint::operator*(int temp){
    Bint b(to_string(temp));
    return ((*this)*b);
}

ProファイルにQMAKE_CXXFLAGS + = -std = c ++ 0xがありませんでした。

うまくいかない理由はいくつかあります:名前をstd::で修飾する必要があるか、C++ 11がサポートされていない可能性があります。

これは、C++ 11のサポートがあれば機能します。

#include <string>

int main()
{
  std::string s = std::to_string(42);
}

G ++またはclangでC++ 11サポートを有効にするには、オプション-std=c++0xを渡す必要があります。これらのコンパイラの新しいバージョンで-std=c++11を使用することもできます。

19
juanchopanza

c ++ 11サポートを使用してファイルをコンパイルする必要があります

g++ -std=c++0x  -o test example.cpp
11
The Beast

Application.mkの最初の行を変更して、この問題を修正しました

APP_STL := gnustl_static

APP_STL := c++_static
3
MikeC

コンパイラでいくつかの変更を行う必要があります。 Dev C++コンパイラの場合:1.コンパイラ設定/コンパイラオプションに移動します。 2. [全般]タブをクリックします3.チェックボックスをオンにします(コンパイラを呼び出すときに次のコマンドを追加します。4. write -std = c ++ 11 5. [OK]をクリックします

0
ashwani nagar