2017-06-16 71 views
-1

经过一段时间实现我自己的streambuf之后,如果您可以对basic_streambuf使用不同的类型(例如double),那么我会自己提出自己的建议。这里有任何经验和用例吗?编写自定义basic_streambuf

+0

您尝试使用'streambuf'类来解决的* actual *问题是什么? *为什么*你需要它将数据存储在'double'中?请阅读[XY问题](http://xyproblem.info/)并思考它与这个问题的关系。 –

回答

3

您错过了streambuf的观点。这是的后端前端operator<<operator>>提供。那些超载为double。前端将任何类型转换为字符,后端处理I/O(至文件,屏幕,网络等)

+0

怎么样不在后端使用字符,但双倍。如果不需要存储字符会怎么样。 – Gustavo

+0

@Gustavo:你会如何为这样的后端写一个'std :: string'?请记住,'std :: streambuf'是整个''库的一部分。如果您的使用案例与“”的典型用法不同,您会发现在修改''时发现有限的好处。 – MSalters

+0

因此,在iostream环境中只允许使用字符,而且从未打算使用除char之外的其他类型? – Gustavo