【问题标题】:Why are eback() and pbase() in std::basic_streambuf named differently?为什么 std::basic_streambuf 中的 eback() 和 pbase() 命名不同?
【发布时间】:2013-07-16 18:09:08
【问题描述】:

大概是为了兼容性,现在这些名字都被卡住了,但是为什么最初没有给它们类似的名字呢? gptr() / pptr()egptr() / epptr() 是一致的,但是eback() 特别令人困惑,gbase() 是不是已经在其他地方使用过?

【问题讨论】:

  • 直到现在我才真正注意区别。它背后可能有一个很长很无聊的背景故事。
  • 我无法回答您的问题,但是如果您查看来自 IOStreams 库的 C++ 标准部分,您会发现那里有许多这样的不一致之处。不幸的是。

标签: c++ history


【解决方案1】:

我能找到的最接近可能答案的是书Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference。在这本书中,Angelika Langer 与标准 iostream 库的实际创建者进行了交谈,并汇编了有关他们在实现、命名和一连串其他有用且重要的事情方面的设计决策背后的基本原理的信息。

本书的序言确实提到了指向streambuf对象的get和put区域的六个指针。也许他更详细地介绍了这些名字。无论哪种方式,它仍然是一本好书。

【讨论】:

  • 我浏览了前言,但没有找到任何对指针函数的引用,你有页码吗?
  • 对不起,那是page 87
猜你喜欢
  • 1970-01-01
  • 2014-02-16
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2020-12-29
  • 2014-02-25
相关资源
最近更新 更多