如何将ostream传递给istream而不复制到sstream?

时间:2016-05-30 00:39:05

标签: c++ iostream

我有两个类AB,其中包含以下公共方法,用于向/从ostream / istream写入/读取数据:

class A {
  void print( std::ostream & os = std::cout ) const ; // prints some data
};

class B {
  void read( std::istream & is = std::cin ) ; // reads that data
};

咨询this thread后,我在客户端代码中使用std::stringstreams将数据从A传递到B

std::stringstream ss;
A a;
B b;

a.print(ss);
b.read(ss);

它的效果非常好。我的问题是:我怎样才能进一步优化它以避免复制开销?我正在查看a.read(b.print())行中的内容,这自然需要B::print返回继承istreamostream的类型,但任何可行的解决方案都会跳过副本开销会起作用。

0 个答案:

没有答案