boost的iostreams组件基本上诠释了stream的概念,但是考虑东西似乎太多了,不管怎么样都得好好学学他的思想。此番重新学习一下。
模板的世界比较累,先从OOP的视角看看:

咋看一下似乎也没多少东西,是库的作者拿了一堆基础概念在那玩文字游戏好像。
抽象起来应该是这样几个东东:IIOStream IIStream IOStream IInSeek IOutSeek IIOSeek IStreamInFilter IStreamOutFilter IStreamIOFilter

看起来确实有点恶心,理论和现实是有差距的,,,唉,,,
接下来让他更恶心一点,应为还缺少一个Filterable的概念

很快出来一张蜘蛛网,,,这也不能说过度设计吧,也许有些系统需要这么细化呢?
不过看到这张蜘蛛网之后果断决定我后面练手绝对不要这么负责,可以考虑v神的做法,接口都是全的,但是功能不一定,使用的不支持的接口就弄个提示啥的。。。

这样看上去是那么回事了,,,seek被提炼到stream里边,filter添加sink的概念,或者直接用delegate更合适?