为什么std::basic_streambuf中的eback()和pbase()命名不同
Why are eback() and pbase() in std::basic_streambuf named differently?
为了兼容性,这些名称现在可能被卡住了,但为什么最初没有给它们类似的名称?gptr()
/pptr()
和egptr()
/epptr()
是一致的,但eback()
特别令人困惑,gbase()
已经在其他地方使用了吗?
我能找到的最接近可能答案的东西是《标准C++IOStreams和Locales:高级程序员指南和参考》一书。在这本书中,Angelika Langer与标准iostream库的实际创建者进行了交谈,并汇编了有关他们的设计决策背后的基本原理的信息,包括实现、命名以及一系列其他有用和重要的东西。
这本书的序言提到了streambuf对象的get和put区域的六个指针。也许他会更详细地介绍这些名字。不管怎样,它仍然是一本好书。