要求接受以下问题的用户"读取缓冲区"相当快: What does rd stand for in rdstate and rdbuf?
我仍然想知道"读取缓冲区"意味着在" std :: ostream" (COUT)。我没有找到任何STL文档描述这个函数做任何"阅读"。这只是一个错误的功能吗? (......显然,但也许我错过了一些东西)
答案 0 :(得分:10)
我仍然想知道“读取缓冲区”在“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的名字。
这意味着替换streambuf的rdbuf(basic_streambuf<C,T>*)
的重载名称错误,它应该是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();
};
答案 1 :(得分:0)
原始设备/数据缓冲区(rdbuf)<----我更喜欢@Daniel Jour的评论。
喜欢: 显式basic_istream(std :: basic_streambuf * sb); 参考:
class basic_streambuf是Raw Device的抽象。这意味着它可以套接字,文件,命名管道,邮筒,内存,graphycard-mem。 因此,从高层次上,如何命名不同的设备?
我认为RD(原始设备)和原始数据都可以,但是原始设备更准确,甚至指向内存的99.999%。