ストリーミングであるいくつかのタイプを考える:私はstd::string
にこれを追加したいStreamオブジェクト::文字列
struct X {
int i;
friend std::ostream& operator<<(std::ostream& os, X const& x) {
return os << "X(" << x.i << ')';
}
};
を。
void append(std::string& s, X const& x) {
std::ostringstream os;
os << x;
s.append(os.str());
}
をしかし、私はちょうどそのちょうど別のものにそれを追加する目的のために新しい文字列を割り当てるために一つのストリームにデータを書いているので、これはラメようだ:私はこれを実装することができます。より直接的なルートはありますか?
私はhttp://www.boost.org/doc/libs/1_61_0/doc/html/interprocess/streams.htmlを参照してください – bobah
おそらく 'std :: string X :: repr()'などを実装しますそれを 'append'と' operator << 'の両方で呼び出しますか?理想的ではありませんが、中間の 'stringstream'は避けてください。 – Praetorian
単純に 's.append(std :: string :: to_string(x));'?私は何かが欠けていましたか? –