C++ 什么是STL;rdbuf“;方法名称代表什么?

C++ 什么是STL;rdbuf“;方法名称代表什么?,c++,stl,C++,Stl,提出以下问题的用户很快接受了“读取缓冲区”: 我仍然想知道在“std::ostream”(cout)的上下文中,“读取缓冲区”是什么意思。我没有发现任何STL文档将此函数描述为进行任何“读取”。这只是一个命名错误的函数吗?(…显然,但也许我遗漏了什么) 我仍然想知道在“std::ostream”(cout)的上下文中,“读取缓冲区”是什么意思 它的“read”与“read the value of”或“get the value of”相同,而不是“read from the stream”中

提出以下问题的用户很快接受了“读取缓冲区”:

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

我仍然想知道在“std::ostream”(cout)的上下文中,“读取缓冲区”是什么意思

它的“read”与“read the value of”或“get the value of”相同,而不是“read from the stream”中的“read”

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

int    rdcount();
int    rdmode();
int    rdmax();
void   setmode(int);
void   setmax(int);
所以“rd”和“set”似乎分别用于getter和setter的名称

这意味着替换streambuf的
rdbuf(basic_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();
};

原始设备/数据缓冲区(rdbuf)这可能仍然是个谜,但我一直认为它的意思是“读取流缓冲区的地址”。另外,
STL
仅指容器、迭代器和算法。@Galik或raw device buffer.iostream名称选择为failbit。如果Jerry Schwartz来道歉,你会做什么不同的事情吗?最好让他平静下来。我在C++标准中找不到任何其他的东西,除了简单的代码> > RDBUF < /C>之外。