gpt4 book ai didi

c++ - STL "rdbuf"方法名称代表什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:58 26 4
gpt4 key购买 nike

提出以下问题的用户很快就接受了“读取缓冲区”: What does rd stand for in rdstate and rdbuf?

我仍然想知道“读取缓冲区”在“std::ostream”(cout)的上下文中意味着什么。我没有找到任何将此功能描述为进行任何“阅读”的 STL 文档。这只是一个错误命名的功能吗? (...显然,但也许我遗漏了什么)

最佳答案

I still wonder what "read buffer" would mean in the context of "std::ostream" (cout).

它是“读取”,如“读取值”或“获取值”,而不是“从流中读取”。

这似乎是旧 Cfront 代码中的常见约定,例如请参阅 Cfront 2.0 documentation 中描述的任务库它有几个这样命名的函数,例如第 2-5 页:

int    rdcount();
int rdmode();
int rdmax();
void setmode(int);
void setmax(int);

所以“rd”和“set”似乎分别用于 getter 和 setter 的名称。

这意味着 rdbuf(basic_streambuf<C,T>*) 的过载替换 streambuf 的名称错误,应该是 setbuf ,但该名称已被 streambuf 本身使用,具有不同的含义。那rdbuf “setter”重载是后来添加的,原始设计只有“getter”,如上面链接的 PDF 末尾的 STRSTREAM(3C++) 手册页所示:

class strstream : public strstreambase,  public iostream {
public:
strstream();
strstream(char*, int, int mode);
strstreambuf* rdbuf() ;
char* str();
};

关于c++ - STL "rdbuf"方法名称代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32770387/

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