gpt4 book ai didi

c++ - 从 ostream 或 ostream_iterator 派生以在 C++ 中制作流式打印机?

转载 作者:行者123 更新时间:2023-11-28 05:35:35 24 4
gpt4 key购买 nike

我有将复杂对象的表示转储到流中的代码。该表示法使用左大括号和右大括号来表示嵌套对象的开始和结束。与其漂亮地打印表示格式,我觉得最好在原始输出中保留所有空白,并在需要时将 pretty-print 作为装饰器模式实现。

pretty-print 算法很简单:检查下一个要输出的字符,如果是右括号,则输出换行符+右括号+换行符。否则只输出字符。

我可以将此装饰器实现为派生自 ostream_iterator 的类或派生自 ostream 的类。哪个更常做?创建 ostream 包装器有什么缺点吗?

最佳答案

建议从 std::ostream 派生的唯一原因是在使用派生类构造一个 std::streambuf 时并初始化基础 std::ostream用它。我认为没有理由从 std::ostream_iterator<...> 派生完全没有。

相反,您将从 std::streambuf 派生并覆盖 overflow()做任何你想做的过滤操作。为了方便起见,您可以从 std::ostream 派生构建便利流。

关于c++ - 从 ostream 或 ostream_iterator 派生以在 C++ 中制作流式打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com