2016-09-15 7 views
-5

std :: to_stringは私のためには機能しませんし、現時点では非常に難しい環境で作業していますLinuxのターミナルエミュレータ)、私は壊れたままにして、それを置き換える代わりにユーザ作成の関数を使用することに決めました(私はそれをオンラインで見つけました)。std :: stringstreamオブジェクトがstd :: to_stringの置換関数で認識されない

ここで私が使用している正確なコードです:

#include <sstream> 

namespace patch { 
    template <typename T> 
    std::string to_string(const T &n); 
     std::stringstream stm; 
     stm << n; 
     return stm.str(); 
    } 
} 

が、私はこれらのタグを使用して、それをコンパイルしています:

g++ -std=c++11 -g -Wall -Wextra -pedantic 

そして、私はこれらのエラーを取得しています:

unknown type name 'stm'; did you mean 'tm'? 
       stm << n; 
       ^~~ 

tmの注釈はinclude/time.hのどこかで宣言されています)

expected unqualified-id 
       return stm.str(); 
       ^

また、名前空間の中かっこを閉じる最後の中かっこの「外来的な中かっこ」エラーもあります。

は、私はそれを理解したように、std::stringstreamオブジェクトに使用される方法operator <<としてラインstm << n;を認識しないが、代わりに、何らかの理由でいくつかの変数declariationとして。

なぜこれらのエラーが発生しますか?それらを修正する方法はありますか?そうでない場合、このソリューションでも何を置き換えることができますか?

+3

を開くためにあるべきセミコロンを持っているように、あなたがを含めました見えますか?関数の開始括弧もなくなっていますし、その後にセミコロンを付けるべきではありません。 –

+0

私は何とか 'std :: to_string'で何か問題があったと疑っています。 – Biffen

+0

@欲しい忍者です。私は宣言から定義に名前空間をコピーして貼り付けました。私はそれを変更するのを忘れました。とにかくはい、 ''が含まれていました。いいえ、 'std :: to_string'はどこにも見つかりませんでした。 – user6245072

答えて

0

あなたは左中括弧は、関数スコープ

関連する問題