我必须将相同的字符串(例如日志消息)发送到多个流。
以下哪种解决方案最有效?
为每个流重建相同的字符串并将其发送到流本身。
outstr1 << "abc" << 123 << 1.23 << "def" << endl; outstr2 << "abc" << 123 << 1.23 << "def" << endl; outstr3 << "abc" << 123 << 1.23 << "def" << endl;
使用字符串的运算符构建一次字符串,并将其发送到所有流。
std::string str = "abc" + std::to_string(123) + std::to_string(1.23) + "def"; outstr1 << str; outstr2 << str; outstr3 << str;
使用流构建一次字符串,并将其发送到所有流:
std::stringstream sstm; sstm << "abc" << 123 << 1.23 << "def" << endl; std::string str = sstm.str(); outstr1 << str; outstr2 << str; outstr3 << str;
这些输出流中的一些或全部可能位于 RAM 磁盘上。
还有其他方法可以做同样的事情吗?