【发布时间】:2013-10-30 15:34:32
【问题描述】:
我有一个 std::istream 对象列表,我需要将其显示为单个 std::istream 对象。因此,如果我有三个istreams、A、B 和 C,我希望能够创建一个istream,D 它将首先返回来自 A 的字节,然后是来自 B 的字节,然后是 C 之前的 EOF到达。复合流将始终按顺序读取,并在读取所有字节后关闭。
是否有使用 stl/boost 的简单方法来执行此操作,还是我只需要编写自己的复合 istream?
【问题讨论】:
-
查看 Boost.Iostreams。
-
在您需要从 std::ios 继承之前,我想说最直接的方法是构建一个复合 istream,具有其他流的队列。
-
您是说您有
std::list的 istream 吗?含义std::list<std::istream>? -
实际上不在 std::list 中,而是在它们的有序集合中。