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として。
なぜこれらのエラーが発生しますか?それらを修正する方法はありますか?そうでない場合、このソリューションでも何を置き換えることができますか?
を開くためにあるべきセミコロンを持っているように、あなたがを含めました見えますか?関数の開始括弧もなくなっていますし、その後にセミコロンを付けるべきではありません。 –
私は何とか 'std :: to_string'で何か問題があったと疑っています。 – Biffen
@欲しい忍者です。私は宣言から定義に名前空間をコピーして貼り付けました。私はそれを変更するのを忘れました。とにかくはい、 ''が含まれていました。いいえ、 'std :: to_string'はどこにも見つかりませんでした。 –
user6245072