C++ 什么是STL;rdbuf“;方法名称代表什么?
提出以下问题的用户很快接受了“读取缓冲区”: 我仍然想知道在“std::ostream”(cout)的上下文中,“读取缓冲区”是什么意思。我没有发现任何STL文档将此函数描述为进行任何“读取”。这只是一个命名错误的函数吗?(…显然,但也许我遗漏了什么) 我仍然想知道在“std::ostream”(cout)的上下文中,“读取缓冲区”是什么意思 它的“read”与“read the value of”或“get the value of”相同,而不是“read from the stream”中的“read” 这似乎是旧Cfront代码中的常见约定,例如,请参见中描述的任务库,其中有几个函数的名称如下,例如第2-5页: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”中
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>之外。