2017-06-16 101 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