Для некоторого типа, который доступен для потока:
struct X {
int i;
friend std::ostream& operator<<(std::ostream& os, X const& x) {
return os << "X(" << x.i << ')';
}
};
Я хочу добавить это на std::string
. Я могу реализовать это как:
void append(std::string& s, X const& x) {
std::ostringstream os;
os << x;
s.append(os.str());
}
Но это кажется хромым, так как я пишу данные в один поток, чтобы затем выделить новую строку только для того, чтобы добавить ее в другую. Есть ли более прямой маршрут?